Сжать с помощью 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, поэтому она не знает, что с ним делать.
Вам нужно временно записать файл на диск, а затем прочитать его, чтобы иметь возможность отправить его обратно