Pertanyaan tidak bisa append_entry FieldList di Flask-wtf lebih dari satu


Saya memiliki formulir dengan flask-wtf untuk mengunggah beberapa gambar, juga bidang file bisa banyak

formulir saya:

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

pandangan ku:

  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()

template saya:

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

ketika saya menggunakan enctype="multipart/form-data"  dalam bentuk append_entry tidak berfungsi, hanya menambahkan satu bidang lagi lagi klik add_upload tetapi setelah refresh saya hanya punya satu field (bukan dua)

bagaimana saya bisa memperbaiki ini? tidak ada kesalahan, saya pikir karena enctype wtform lupa berapa banyak field yang harus saya tambahkan lagi: D


5
2017-12-26 17:30


asal


Jawaban:


Anda menelepon ke append_entry hilang itu data.

Dari Dokumentasi:

append_entry ([data])

Buat entri baru dengan data opsional opsional.

Entri yang ditambahkan dengan cara ini tidak akan menerima formdata, dan hanya dapat menerima data objek.

Jika Anda mencoba mendapatkan data yang dikirimkan pada formulir, Anda dapat mencoba menggunakannya pop_entry. Atau setidaknya melakukan beberapa debug dan melihat apa form.attachment.entries seperti. Apakah itu mengandung nilai? Apa yang terjadi ketika Anda melakukan iterasi melalui nilai-nilai itu?


4
2018-01-04 16:03