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 に答える