Генерация pdf не работает в одной функции
Я получаю данные таблицы из базы данных и я добавил кнопку в HTML и я пытаюсь получить pdf, нажав на кнопку, но это не работает. Когда я использую отдельные функции в представлении одна для рендеринга данных, а другая для генерации pdf, тогда это работает, но я хочу использовать одну функцию для генерации pdf и рендеринга моей таблицы.
views.py
def render_to_pdf(request, template_name, context_dict={}, filename="document"):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'filename="'+filename+'".pdf"'
template = get_template(template_name)
html = template.render(context_dict)
pisa_status = pisa.CreatePDF(
html, dest=response, link_callback=context_dict)
if pisa_status.err:
return HttpResponse('We had some errors <pre>' + html + '</pre>')
return response
def training_completed_attendance(request):
xyz=trainingMaster.objects.filter(status='Active').order_by('code')
context={
'xyz':xyz,
}
if request.POST.get('pdf_download'):
pdf= utils.render_to_pdf(request, 'dashboard/generate_pdf.html', context, filename='training conpleted')
return HttpResponse(pdf, content_type='application/pdf')
return render(request,'dashboard/training_completed_report.html',context)
html
<table class="table table-bordered text-center" border="1" id="table1">
<form method='post'>
{% csrf_token %}
<button type="submit" name='pdf_download'>Download</button>
</form>
<tr>
<th>Male</th>
<th>Female</th>
<th>Total</th>
</tr>
</tr>
{% for x in xyz %}
<td style="width: 13%; text-align: center; " class="table-cell-label">{{x.male}}</td>
<td style="width: 13%; text-align: center; " class="table-cell-label">{{x.female}}</td>
<td style="width: 13%; text-align: center; " class="table-cell-label">{{x.total}}</td>
{% endfor %}