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

标签 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 忘记了我必须添加更多字段。

最佳答案

您对 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/

相关文章:

python - 在其他语言中使用 PBKDF2 SHA512 数据

python - 如何使用 webapp2 在 Python 中对多语言对象建模

python - 如何将 argparse 参数传递给另一个 python 程序?

Python:嵌套字典 - 如果键不存在则创建,否则求和 1

python - 如何从嵌套 json 输出 Python Pandas Dataframe?

python - Flask-WTF 表单的单元测试验证

python - Flask wtforms ValidationError 未向用户显示

Python-值错误: I/O Operation on Closed File Error

postgresql - 如何在 docker-compose up 上注册一个 Postgres 容器主机?

python - flask-wtf selectField 选择无效