WTForms中FieldList的使用,可提交多行表单数据
authors = FieldList(StringField('Name', [validators.DataRequired()]))
- min_entries 最小个数
- max_entries 能接受的最大个数
- append_entry() 添加
- pop_entry() 删除最后一个
FieldList 渲染出的html,其id和name会是:valve-0、valve-1这种形式,如果是用FormField应用在别的表单,就是root_ud-0-dap这样。
forms.py
class UserDefined(FlaskForm):
dap = IntegerField('天数', render_kw={
'digits': 'true', 'required': 'true'})
value = DecimalField('值', places=2, render_kw={
'number': 'true', 'required': 'true'})
class UserForms(FlaskForm):
...
root_ud = FieldList(FormField(UserDefined))
lai_ud = FieldList(FormField(UserDefined))
...
views.py
form = UserForms()
# 数据存入的时候
if form.validate_on_submit():
if lr_user_defined: # 目前是删除以前的所有字段,如果有人有什么好方法感谢分享。
for i in lr_user_defined:
db.session.delete(i)
for r in form.root_ud:
r_dap = r.dap.data
r_value = r.value.data
r_u = TRootDepthUserDefined(plant_id=