Сжать с помощью pyminizip и вернуться к ответу

Я пытаюсь сжать данные с помощью pyminizip и вернуть их в качестве ответа в проекте Django следующим образом

def get_csv_file(request):
    response = HttpResponse(content_type='application/zip')
    response['Content-Disposition'] = 'attachment; filename="member.zip"'
    users = User.objects.all()
    file_path = os.path.join(tempfile.gettempdir(), 'member.csv')
    f = open(file_path, 'w')
    file_writer = csv.writer(f, quotechar='"', quoting=csv.QUOTE_MINIMAL)
    for user in users:
        file_writer.writerow([user.username, user.email])
    f.close()
    pyminizip.compress(file_path, "members", response, "pass", int(1))
    return response

получаем эту ошибку

ValueError at /get_csv_file/
expected arguments are compress(srcfile, prefix, zipfile, password, compress_level)

Аргумент "zipfile" в функции pyminizip.compress ожидает путь к файлу для записи zip-файла, однако вы предоставили объект HttpResponse, поэтому она не знает, что с ним делать.

Вам нужно временно записать файл на диск, а затем прочитать его, чтобы иметь возможность отправить его обратно

Вернуться на верх