【发布时间】:2018-06-03 21:44:27
【问题描述】:
我有一个 python wtforms QuerySelectField,它从无序数据库中提取数据。如何使列表按字母顺序显示?
【问题讨论】:
标签: python sqlalchemy wtforms
我有一个 python wtforms QuerySelectField,它从无序数据库中提取数据。如何使列表按字母顺序显示?
【问题讨论】:
标签: python sqlalchemy wtforms
对字段使用的查询应用排序。给定一个模型,例如
class Car(Base):
...
make = Column(Unicode, nullable=False)
model = Column(Unicode, nullable=False)
您将传递一个产生有序结果的query or a query factory:
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)
【讨论】: