我想使用从路由传入的默认值来执行查询选择字段。我无法弄清楚如何将视图中的变量传递给Form类
class transactionsForm(Form):
loan_id = QuerySelectField('trans_id', validators=[Required()], get_label='name',
query_factory=lambda: trans.query.filter_by(trans_id=[MY VARIABLE]).all())
答案 0 :(得分:7)
这来自QuerySelectField文档:
可以在视图中设置字段上的查询属性,以便为字段分配每个实例的查询。如果未设置该属性,则将调用传递给字段构造函数的query_factory callable以获取查询。
这意味着您使用查询定义表单:
class transactionsForm(Form):
loan_id = QuerySelectField('trans_id', validators=[Required()], get_label='name')
然后在您的视图函数中,一旦有了实例,就可以分配查询:
def viewFunction(my_variable):
form = transactionsForm()
my_query = trans.query.filter_by(trans_id=my_variable)
form.loan_id.query = my_query
if form.validate_on_submit():
# ...
答案 1 :(得分:0)
请参阅我的另一个问题:https://stackoverflow.com/a/17638018/880326。
所以它看起来像:
form = transactionsForm(request.form, loan_id='default')