【问题标题】:Can't append_entry FieldList in Flask-wtf more than once不能在 Flask-wtf 中多次 append_entry FieldList
【发布时间】:2012-01-28 02:22:26
【问题描述】:

我有一个带有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时收到的错误信息是什么
  • @tkone 没有错误,以简单的形式记住字段的数量,但在多部分中,每次只有附加的表单有一个字段
  • 那么'append_entry 怎么不起作用?当你执行那个函数时会发生什么?你的代码的结果是什么?
  • @tkone 在编辑中添加更多描述
  • 我仍然看不到运行此代码时会发生什么。你期待什么,你得到什么?你打电话给append_entry()?什么是附加的?

标签: python flask wtforms


【解决方案1】:

你打电话给append_entry 丢失了它的数据。

来自Documentation

append_entry([数据])

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

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

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

【讨论】:

    猜你喜欢
    • 2018-11-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-22
    • 1970-01-01
    • 2016-04-02
    • 2018-03-21
    • 2016-04-22
    相关资源
    最近更新 更多