2

我想使用从路由传入的默认值执行查询选择字段。我不知道如何将变量从 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())
4

2 回答 2

10

这是来自QuerySelectField文档:

可以从视图中设置字段上的查询属性,以将每个实例的查询分配给该字段。如果未设置该属性,则将调用传递给字段构造函数的 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():
        # ...
于 2013-08-01T16:43:33.443 回答
1

在此处查看我的其他答案:https ://stackoverflow.com/a/17638018/880326 。

所以它看起来像:

form = transactionsForm(request.form, loan_id='default')
于 2013-08-01T05:58:08.983 回答