У меня есть динамические c поля: <input type='text' name='names[]'>
и <input type='file' name='images[]' multiple>
, которые я буду публиковать в виде и обрабатывать в пакетном режиме путем архивирования полей.
Проблема в том, что, когда я отправляю сообщение, images[]
будет получено как один список вместо 2d списка.
один список: images = [<file 1>, <file 2>, <file 3>, <file 4>]
, где должен быть 2d список: images = [[<file 1>, <file 2>], [<file 3>, <file 4>]]
.
Мне нужно, чтобы изображения были в 2d списке, так как я буду использовать их на zip. Есть ли в любом случае я могу сделать это, не имея разных имен для каждой строки <input type='file' name='images[]' multiple>
?
шаблон:
<form action="__post_url_here__" method="POST" enctype="multipart/form-data">
<div>
<input type="text" name="names[]" /> # has value of name 1
<input type="file" name="images[]" multiple /> # has value of [<file 1>, <file 2>]
</div>
<div>
<input type="text" name="names[]" /> # has value of name 2
<input type="file" name="images[]" multiple /> # has value of [<file 3>, <file 4>]
</div> ... ...
</form>
view:
form_data = request.POST
file_data = request.FILES
names = form_data.getlist("names[]")
images = form_data.getlist("images[]")
print(names)
# this results to ["name 1", "name 2"]
print(images)
# this results to [<file 1>, <file 2>, <file 3>, <file 4>]
# I need it to be in this format [[<file 1>, <file 2>], [<file 3>, <file 4>]]
for name, imgs in zip(names, images):
print(name, imgs)
# the ideal print on each Iter:
# 1st iter: "name 1" [<file 1>, <file 2>]
# 2nd iter: "name 2" [<file 3>, <file 4>]