在Flask 0.8中,我知道我可以使用form.fieldname.data
访问单个表单字段,但有一种简单的方法可以迭代所有表单字段吗?我正在构建一个电子邮件正文,我想遍历所有字段并为每个字段创建一个字段名/值条目,而不是通过命名每个字段并附加来手动构建它。
答案 0 :(得分:27)
我怀疑你正在使用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
答案 1 :(得分:10)
表单对象上定义了一个迭代器:
{% 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 %}