Я бы посоветовал вам опубликовать определения модели и формы, но, не видя его, я предлагаю вам использовать другой подход, поэтому менять что-либо с двойным подчеркиванием (например, __dict__
) крайне не рекомендуется.
Я вижу улучшение, которое можно сделать, просто используя setattr
и итерируя по данным формы:
def update_vehicle(vehicle_id):
vehicle = Vehicle.query.get_or_404(vehicle_id)
form = VehicleUpdateForm()
if form.validate_on_submit():
for fieldname, value in form.data.items():
setattr(vehicle, fieldname, value)
db.session.commit()
flash(f'The user has been updated', 'success')
return redirect(url_for('listvehicle'))
elif request.method == 'GET':
for attr,value in vehicle.__dict__.items():
for ia,iv in form.__dict__.items():
if ia == attr:
iv.data = value
return render_template('updatevehicle.html', form=form)