1

イベントスケジューリングを行うためにFlaskアプリケーションに取り組んでいます。フォームの WTForms QuerySelectMultipleField に問題があります。

フォーム.py

class EnterEvent(Form):
...
invitees = QuerySelectMultipleField('Invitees', query_factory=lambda:
                            models.User.query.order_by(models.User.name).all())

そして、フォーム POST データを解析するinit .py ファイルで。テストするために、何が渡されたかを確認するために request.form['invitees'] を返そうとしました。最終的には、データを検証して SQLite3 DB に追加したいと考えています。

@app.route('/event', methods=['POST', 'GET'])
def addEvent():
    form = EnterEvent()
    if request.method == 'POST':
        ...
        invitees = request.form['invitees']
        return invitees

WTForm ドキュメントには、QuerySelectMultipleField は ORM モデル インスタンスを含むリストを返す必要があると書かれていますが、POST リクエストを解析するとリストが取得されません。ブラウザで POST データを確認したところ、複数のオブジェクトを選択すると、複数のオブジェクトが送信されているように見えます。

私はこれを理解できないようです。どんな助けでも大歓迎です!

4

1 に答える 1

1

formリクエスト オブジェクトの一部である「生の」フォーム データではなく、オブジェクトを直接クエリすると、ORM モデル インスタンスが取得されます。

Flask-WTF をビルドした小さなヘルパーで使用していると仮定すると、invitees行は実際にはinvitees = form.invitees.data.

于 2013-07-07T16:21:05.953 に答える