Django возвращает PDF из chromium с пользовательским именем

Я использую chromium в django для экспорта PDF файла. Все работает хорошо, но экспортированный файл "myfile.pdf" сохраняется в корневой каталог моего приложения. Я пытаюсь определить лучший способ передать файл с пользовательским именем и датой, но при этом не заполнять веб-приложение этими оставшимися файлами.

Нужно ли использовать временный каталог?

Вот мой код на данный момент:

class PrintPDF(DetailView):
    template_name = "print.html"

    def get(self, request, *args, **kwargs):
        html_file = self._create_html_file(request)

        cmd = settings.PDF_EXPORT_COMMAND

        cmd_options = [
            "--headless",
            "--print-to-pdf=myfile.pdf",
            "--disable-gpu",
            "--run-all-compositor-stages-before-draw",
            "--virtual-time-budget=10000",
            "--force-device-scale-factor=1",
            "--no-sandbox",
            "--disable-dev-shm-usage",
            html_file,
        ]

        subprocess.check_call(cmd + cmd_options, timeout=600)
        os.remove(html_file)
        return FileResponse(open("myfile.pdf", "rb"), content_type="application/pdf")

    def _create_html_file(self, request):
        self.object = self.get_object()
        context = self.get_context_data(object=self.object)
        html = render_to_string(self.template_name, context, request)
        tmp = tempfile.NamedTemporaryFile(delete=False, suffix=".html")
        with open(tmp.name, "w") as f:
            f.write(html)
        return tmp.name
Вернуться на верх