对于初学者,FieldList有一个名为的参数
min_entries,它将为您的数据腾出空间:
class CompanyForm(Form): company_name = StringField('company_name') locations = FieldList(FormField(LocationForm), min_entries=2)这将按照您需要的方式设置列表。接下来,您应该直接从
locations属性中渲染字段,以便正确生成名称:
<form action="" method="post" role="form"> {{ companyForm.hidden_tag() }} {{ companyForm.company_name() }} {{ companyForm.locations() }} <input type="submit" value="Submit!" /></form>查看呈现的html,输入应具有像
locations-0-city这样的名称,这样WTForms将知道是哪个。
或者,对于元素的自定义呈现
{% for l in companyForms.locations %}{{ l.form.city }}{% endfor %}(仅在wtforms中
l.city是的简写
l.form.city。但是,该语法似乎与Jinja冲突,因此有必要
l.form.city在模板中使用显式。)
现在准备好提交的数据,只需创建
CompanyForm和遍历以下位置:
for entry in form.locations.entries: print entry.data['location_id'] print entry.data['city']



