2011-10-15 7 views
9

Flask 0.8では、form.fieldname.dataを使用して個々のフォームフィールドにアクセスできますが、すべてのフォームフィールドを繰り返し処理する簡単な方法はありますか?私は電子メールメッセージ本文を構築しています。各フィールドに名前を付けて追加することによって手動で作成するのではなく、すべてのフィールドをループして、それぞれのフィールド名/値エントリを作成したいと思います。Flaskで送信されたフォームフィールドを反復処理しますか?

答えて

23

WTFormsと思われます。

フォームデータを反復処理することができます。

for fieldname, value in form.data.items(): 
    pass 

あなたはすべてのフォームフィールドを反復処理することができます

for field in form: 
    # these are available to you: 
    field.name 
    field.description 
    field.label.text 
    field.data 
7

は、フォームオブジェクトは、それに定義されたイテレータを持っています

{% for field in form %} 
    <tr> 
    {% if field.type == "BooleanField" %} 
     <td></td> 
     <td>{{ field }} {{ field.label }}</td> 
    {% else %} 
     <td>{{ field.label }}</td> 
     <td>{{ field }}</td> 
    {% end %} 
    </tr> 
{% endfor %} 

これは、http://wtforms.simplecodes.com/docs/0.6/fields.html

関連する問題