Применить порядок к запросу, используемому полем.При наличии такой модели, как
class Car(Base):
...
make = Column(Unicode, nullable=False)
model = Column(Unicode, nullable=False)
, вы передадите запрос или фабрику запросов , которая выдаст упорядоченные результаты:
def cars():
return session.query(Car).order_by(Car.make, Car.model)
class Cars(Form):
car = QuerySelectField(query_factory=cars)
В качестве альтернативы вы можете задать запросдинамически в представлении, если не используются фабрики:
form.car.query = session.query(Car).order_by(Car.make, Car.model)
Если в ваших моделях отсутствует описательное строковое представление, вы можете настроить метку, используемую при рендеринге параметров, чтобы порядок был более очевидным:
def get_car_label(car):
return f"{car.make} {car.model}"
class Cars(Form):
car = QuerySelectField(query_factory=cars, get_label=get_car_label)