Я хочу обработать файл, загруженный с формой в Django. Этот файл TemporaryUploadedFile
, поэтому мне нужно сначала сохранить его где-нибудь на диске.
Я следовал django do c, относящимся к загрузке файлов , следовательно, с помощью генератора чанков. Моя функция выглядит следующим образом:
def handle_uploaded_file(myfile):
temp_filepath = myfile.temporary_file_path()
with open(temp_filepath, 'wb+') as destination:
for chunk in myfile.chunks():
destination.write(chunk)
ds = DataSource(temp_filepath)
Проблема в том, что для l oop ничего не происходит, хотя мой файл корректен, потому что я могу заполнить список, затем выполнить итерацию по этому списку, и это работает (см. Ниже)… Меня смущает это поведение, может кто-нибудь объяснить, где я не прав?
Это работает:
def handle_uploaded_file(myfile):
chunks = []
for chunk in myfile.chunks():
chunks.append(chunk)
temp_filepath = myfile.temporary_file_path()
with open(temp_filepath, 'wb+') as destination:
for chunk in chunks:
destination.write(chunk)
ds = DataSource(temp_filepath)
Я не могу объяснить себе, почему генератор не генерирует в Первый пример ...