Не может добавить FieldList в Flask-wtf более одного

У меня есть форма с 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 ответ

Решение

Вы звоните append_entry отсутствует это данные.

Из документации:

append_entry ([данные])

Создайте новую запись с необязательными данными по умолчанию.

Однако записи, добавленные таким образом, не будут получать данные формы и могут получать только данные объекта.

Если вы пытаетесь получить данные, которые были представлены в форме, вы можете попробовать использовать pop_entry, Или, по крайней мере, сделать некоторую отладку и посмотреть, что form.attachment.entries похоже. Содержит ли он значения? Что происходит, когда вы перебираете эти значения?

Другие вопросы по тегам