I have form to repopulate in edit page, in my form I have three selectField which are interconnected to populate. But my first selectField (Cars) not selected correct value after repopulate in edit page and no error in my code.
This my scenario, when I click edit in table. Data will populate in edit form. But Car selectedField not selected the correct car. See image below...
How to repopulate data in edit page and selected the correct value in selectedfield ?
This my code:
views.py
@bp.route('/edit_orders/<int:obj_id>/edit', methods=['GET'])
def edit_orders(obj_id):
orders = Order.query.get(obj_id)
form = OrderForm(obj=orders)
form.cars.choices = [(c.id, c.car) for c in Car.query.order_by('id')]
form.models.choices = [(m.id, m.model) for m in Model.query.filter(Model.car_id == orders.cars.id).all()]
form.versions.choices = [(v.id, v.version) for v in Version.query.filter(Version.model_id == orders.models.id).all()]
return render_template('edit_order.html', title="Edit Orders", form=form)
model.py
class Car(Base):
__tablename__ = 'cars'
id = Column(Integer, primary_key=True)
car = Column(String(128), nullable=False)
models = relationship("Model", back_populates="cars") # relationship
orders = relationship("Order", back_populates="cars")
def __init__(self, car=None):
self.car = car
def __repr__(self):
return '<Car %r>' % self.car
@property
def serializable(self):
return {'id':self.id, 'car':self.car}
form.py
# -*- coding: utf-8 -*-
from flask_wtf import Form
from wtforms import SelectField, TextField, validators
class OrderForm(Form):
cars = SelectField(u'Car', coerce=int)
models = SelectField(u'Model', choices=[('', '--choose--')])
versions = SelectField(u'Version', choices=[('', '--choose--')])
customer_name = TextField(u'Customer', [validators.InputRequired('Customer is required.')])
This all my source code in github. I hope someone can fix my bugs/error. Thanks advanced.