Моя цель - создать отчет в формате PDF с использованием ReportLab, где часть текста является динамической на основе первичного ключа.
У меня есть раскрывающийся список с каждым первичным ключом, созданным в настоящее время в программе (# 1 - 5в настоящее время) и по мере создания дополнительных "отправлений" в раскрывающийся список добавляется первичный ключ.
Когда я выбираю первичный ключ и затем нажимаю кнопку "отправить", я хотел бы, чтобы мой файл PDF создавал гдединамический текст связан именно с этим pk.
Ниже приведен вид PDF-файла, который у меня есть на данный момент, со статическим текстом (взятым из источника на reportlab), где мне нужны такие значения, как «JOHN DOE» и «Имя здесь идет "для динамической замены на основе выбранного ПК.
views.py
def write_pdf_view(request):
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'inline; filename="mypdf.pdf"'
buffer = BytesIO()
p = canvas.Canvas(buffer)
# Start writing the PDF here
p.setLineWidth(.3)
p.setFont('Helvetica', 12)
p.drawString(30,750,'Name goes here')
p.drawString(30,735,'OF ACME INDUSTRIES')
p.drawString(500,750,"12/12/2010")
p.line(480,747,580,747)
p.drawString(275,725,'AMOUNT OWED:')
p.drawString(500,725,"$1,000.00")
p.line(378,723,580,723)
p.drawString(30,703,'RECEIVED BY:')
p.line(120,700,580,700)
p.drawString(120,703,"JOHN DOE")
# End writing
p.showPage()
p.save()
pdf = buffer.getvalue()
buffer.close()
response.write(pdf)
return response
Здесь создается раскрывающийся список
ViEWS.py
def reference_view(request):
query_results = Orders.objects.all()
reference_list = DropDownMenuReferences()
context = {
'query_results': query_results,
'reference_list': reference_list
}
return render(request, 'proforma_select.html', context)
Forms.py
class DropDownMenuReferences(forms.Form):
Reference_IDs = forms.ModelChoiceField(queryset=Orders.objects.values_list('reference', flat=True).distinct(),
empty_label=None)
ШАБЛОН
{% extends 'base.html' %}
{% block body %}
<div class="container">
<br>
<form method=POST action="">
{{ reference_list }}
<button type="submit" class="btn btn-primary" name="button">Add Order</button>
</form>
</div>
{% endblock %}
В настоящее время я совершенно не уверен, как решить эту проблему.У меня есть выпадающий список, и я понимаю, как создать PDF, я просто не знаю, где их связать.