Как ссылаться на модели Django в ReportLab - PullRequest
0 голосов
/ 22 мая 2019

Я создаю PDF, используя ReportLab, и я хотел бы извлечь отдельное поле из моей модели Orders (поле называется 'reference').В настоящее время я использую Orders.objects.all (), но я не уверен, как ссылаться на это конкретное поле модели.

Что у меня сейчас есть:

def write_pdf_view(request):
    doc = SimpleDocTemplate("/tmp/somefilename.pdf")
    styles = getSampleStyleSheet()
    Story = [Spacer(1,2*inch)]
    style = styles["Normal"]
    orders = Orders.objects.all()
    for i in orders:
       bogustext = ("This is Order number %s.  " %i)
       p = Paragraph(bogustext, style)
       Story.append(p)
       Story.append(Spacer(1,0.2*inch))
    doc.build(Story)

    fs = FileSystemStorage("/tmp")
    with fs.open("somefilename.pdf") as pdf:
        response = HttpResponse(pdf, content_type='application/pdf')
        response['Content-Disposition'] = 'attachment; filename="somefilename.pdf"'
        return response

    return response

ВозвращаетсяPDF-файл с текстом «Это номер заказа Объект заказа», но я бы хотел, чтобы он читал «Это номер заказа ссылка »

Ответы [ 2 ]

0 голосов
/ 22 мая 2019

у ваших models.py

class Order(db.Model):
    ...

    def __str__(self):
        return self.reference
0 голосов
/ 22 мая 2019

Я думаю, вы можете получить к нему доступ вот так

bogustext = ("This is Order number %s.  " % i.reference)
...