Django - публикация списка результатов из двух файлов в один список - PullRequest
0 голосов
/ 12 марта 2020

У меня есть динамические 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>]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...