将变量传递给Flask WTForm

3

我想在查询选择字段中设置一个默认值,该默认值从路由传入。我无法弄清楚如何将变量从View传递到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())
2个回答

10
这段内容来自于QuerySelectField文档:

在视图中,可以通过设置字段的query属性为一个查询语句来为每个实例赋值。如果该属性未设置,则会调用传递给字段构造函数的query_factory可调用对象来获取一个查询。

这意味着您可以使用查询语句定义表单:
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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接