不能在Flask-wtf中多次追加_entry FieldList

时间:2011-12-26 17:30:55

标签: python flask wtforms

我有一个带有flask-wtf的表格用于上传一些图像,也可以是文件字段 多个

我的表格:

 class ComposeForm(Form):
     attachment = FieldList(FileField(_('file')), _('attachment'))
     add_upload = SubmitField(_('Add upload'))

我的观点:

  if form.validate_on_submit():
         if form.add_upload.data:
             form.attachment.append_entry()
             return render_template('mailbox/compose.html', form=form)
         else:
             form.attachment.append_entry()

我的模板:

<form method="POST" enctype="multipart/form-data" action=".">
                {% for field in form %}
                {{field}}
                {% endfor %}
</div>

当我在enctype="multipart/form-data"格式中使用append_entry不起作用时,只会追加一个字段 再次单击add_upload但刷新后我只有一个字段(不是两个)

我怎么能解决这个问题?没有错误,我认为因为enctype wtform忘记了多少字段我必须添加更多:D

1 个答案:

答案 0 :(得分:4)

您致电append_entry时遗漏了数据。

来自Documentation

  

append_entry([data])

     

使用可选的默认数据创建一个新条目。

     

以这种方式添加的条目不会收到formdata,但只能接收对象数据。

如果您尝试获取表单上提交的数据,可以尝试使用pop_entry。或者至少做一些调试并看看form.attachment.entries的样子。它包含值吗?迭代这些值时会发生什么?