我有一个带有 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 忘记了我必须添加更多字段。
最佳答案
您对 append_entry
的调用丢失了它的数据。
来自Documentation :
append_entry([data])
Create a new entry with optional default data.
Entries added in this way will not receive formdata however, and can only receive object data.
如果您试图获取表单上提交的数据,您可以尝试使用 pop_entry
。或者至少进行一些调试并查看 form.attachment.entries
的样子。它包含值吗?当您遍历这些值时会发生什么?
关于python - 不能多次在 Flask-wtf 中附加_entry FieldList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8637831/