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