Django: [Errno 2] Нет такого файла или каталога: '/tmp/tmpmhi9gua5/texput.pdf' во время генерации pdf
Мне нужна помощь, пожалуйста, Привет для всех здесь я пытаюсь генерировать pdf с помощью latex в моем приложении django, но я продолжаю видеть ошибку, когда я добавляю определенные данные в моем шаблоне-latex.tex.
Это мой views.py:
if request.user.is_authenticated:
if request.method == 'POST':
form = ReportForm(request.POST, )
form.instance.user=request.user
if form.is_valid():
form.save()
obj_Formulaire = MyModel.objects.filter(user=request.user).last()
field_obj_load_between_posts = MyModel._meta.get_field('load_between_posts')
field_value_load_between_posts = field_obj_load_between_posts.value_from_object(obj_Formulaire)
load_between_posts = field_value_load_between_posts
if load_between_posts == True:
field_obj_custom_load = MyModel._meta.get_field('custom_load')
field_value_custom_load = field_obj_custom_load.value_from_object(obj_Formulaire)
qh = float(field_value_custom_load)
else:
qh = float(0)
#----some other code about getting the value fields----
w_profile = float(sizes_column_wprofile)
w_project = round(float((1.5 * qh * distance * height) / fy),2)
if w_profile >= w_project:
resultat_mechanical = "Wprofile={0} > Wproject={1}".format(w_profile, w_project)
resultat_resistance_criteria = "Profile Verified ✔"
else:
resultat_mechanical = "Wprofile={0} < Wproject={1}".format(w_profile, w_project)
resultat_resistance_criteria = "Profile Not Verified"
context = {
'qh': qh,
'resultat_resistance_criteria': resultat_resistance_criteria,
'resultat_mechanical' : resultat_mechanical
}
template = get_template('pages/my_latex_template.tex')
rendered_tpl = template.render(context).encode('utf-8') # <3>
with tempfile.TemporaryDirectory() as tempdir: # <4>
for i in range(2):
process = Popen(
['pdflatex', '-output-directory', tempdir],
stdin=PIPE,
stdout=PIPE,
)
process.communicate(rendered_tpl)
with open(os.path.join(tempdir, 'texput.pdf'), 'rb') as f:
pdf = f.read()
r = HttpResponse(content_type='application/pdf') # <5>
r.write(pdf)
return r
form = ReportForm()
context = {'form': form}
return render(request, 'pages/form_gelander_report.html', context)
здесь все в порядке, но когда я добавляю :
{{ resultat_mechanical }} {{ resultat_resistance_criteria }}
в моем шаблоне latex.tex он показывает мне эту ошибку:
[Errno 2] No such file or directory: '/tmp/tmpmhi9gua5/texput.pdf'
вот содержание файла my_latex_template.tex:
{% autoescape on %}
\documentclass{article}
\begin{document}
{{ qh }}
{{ resultat_mechanical }}
{{ resultat_resistance_criteria }}
\end{document}
{% endautoescape %}
PS : если добавить только :
{{ qh }}
---> все в порядке, и был сгенерирован шаблон.
Проблема возникает, когда я добавляю
{{ resultat_mechanical }}
{{ resultat_resistance_criteria }}
в файле my_latex_template.tex
---->
[Errno 2] No such file or directory: '/tmp/tmpmhi9gua5/texput.pdf'