如何在ReportLab中引用Django模型

时间:2019-05-22 00:55:00

标签: python django reportlab

我正在使用ReportLab创建pdf,我想从我的Orders模型中提取一个单独的字段(该字段称为“引用”)。我目前正在使用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 :(得分:0)

我认为您可以这样访问

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

答案 1 :(得分:0)

在您的模型上。py

class Order(db.Model):
    ...

    def __str__(self):
        return self.reference