0

Jinja で HTML テンプレートを定義し、そこで同じ名前の 3 つのテキストフィールドを定義しました。次に、バックエンドで get_all メソッドを使用してすべての値を収集しました。

次に、フォームの検証などを追加するために、WTForms ライブラリを追加しました。次に、フォームを次のように定義しました。

class RoleForm(BaseForm):
    name = fields.TextField(_('Name'))

HTML ページでは、この要素を 3 回レンダリングしました。

ここで、フォームを送信して検証が失敗すると、フォームを入力として使用してテンプレートを再レンダリングします。しかし、代わりに、各要素には入力した値があり、すべてのテキストフィールドには最初のテキストフィールドの値があります。

さらに、検証に問題がなければ、form.name.data を使用します。これは、3 つのテキストフィールドからすべてのデータを取得するのではなく、最初の 1 つだけを取得します。

このような状況をどのように処理できるか知っていますか?

前もって感謝します!

4

2 に答える 2

1

wtforms.fields.FieldListフィールドエンクロージャーを探しています:

class RoleForm(BaseForm):
    name = fields.FieldList(fields.TextField(_('Name')), min_entries=3)
于 2012-11-02T22:29:00.507 に答える
0

inputたとえば、次のようなHTML 要素を作成する必要があります。

<input name="row-{{ loop.index0 }}" type="checkbox">

以下のような入力をレンダリングします。

<input name="row-0" type="checkbox">
<input name="row-1" type="checkbox">

ループ内またはそのようなもの。次に、フォームの内容を取得できます。

class ListForm(Form):
    row = FieldList(fields.TextField('Row'))
于 2015-03-22T18:38:24.710 に答える