Сохраните файл Excel по определенному пути с помощью Django, а затем запечатайте его в zip-архив

У меня есть следующее представление, которое позволяет мне создать отчет Excel, а затем запечатать его.

def download_report(request, slug):
    report = get_object_or_404(Report, slug=request.session['slug'])
    transporter_list = get_transporters_list_with_files(report=report.pk)
    folder = create_report_folder()

    if request.method == 'GET':
        files = []
        for transporter in transporter_list:
            reports_detail = get_object_or_404(ReportResults, report=report,
                                               transporter=get_object_or_404(Transporter, name=transporter))
            general_result_data = reports_detail.result
            weights_data = reports_detail.result_comparison_weights
            file = create_excel_report(report=report, name=transporter, folder_name=folder)
            files.append(file)

    zip_files = create_zip_files(list_files=files)
    response = serve_report_zip_file(zip_files)

    return response

Поскольку должно быть создано несколько отчетов, я стремлюсь создать все отчеты, а затем заархивировать их. Я создал следующие функции:

Я хочу сохранить отчет в определенной папке и заархивировать все файлы. Однако при выполнении функции create_excel_report у меня возникает следующая ошибка: TypeError: expected str, bytes or os.PathLike object, not HttpResponse

Я пробовал не использовать BytesIO, но файлы Excel оказались поврежденными... Что я упускаю?

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