Загрузка нескольких файлов CSV в Django с использованием формы поля нескольких файлов - PullRequest
0 голосов
/ 13 апреля 2020

Я попытался загрузить один CSV-файл, используя Django форму поля файла, и он работает хорошо. Однако переключение формы поля файла в форму с несколькими полями приводит к ошибке при попытке прочитать файл CSV.

То, что я изначально пытался использовать для одного файла CSV:
в forms.py

class UploadForm(forms.Form):
    file_field = forms.FileField(allow_empty_file = False)

в views.py

input_file = request.FILES['file_field']
data_set = input_file.read().decode('UTF-8')
io_string = io.StringIO(data_set)

next(io_string)
model_list = []
for row in csv.reader(io_string, delimiter = ',', quotechar = "|"):
    #create Django model object based on the row and append it to model_list
Sample_Model.objects.bulk_create(model_list)

То, что я сейчас пытаюсь использовать для нескольких файлов CSV:
в forms.py:

class UploadForm(forms.Form):
    file_field = forms.FileField(allow_empty_file = False, widget=forms.ClearableFileInput(attrs={'multiple': True}))

в views.py:

input_files = request.FILES.getlist('file_field')
for file in input_files:
    data_set = file.read().decode('UTF-8')
    io_string = io.StringIO(data_set)

    next(io_string)
    model_list = []
    for row in csv.reader(io_string, delimiter = ',', quotechar = "|"):
        #create Django model object based on the row and append it to model_list
    Sample_Model.objects.bulk_create(model_list)

Я получил ошибку Stop Iteration в строке next(io_string). После просмотра его значения и анализа кода кажется, что data_set = file.read().decode('UTF-8') является источником проблемы, поскольку теперь он не работает должным образом.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...