Проблема с использованием генератора django File.chunks () - PullRequest
0 голосов
/ 19 февраля 2020

Я хочу обработать файл, загруженный с формой в 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)

Я не могу объяснить себе, почему генератор не генерирует в Первый пример ...

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