Django 使用platypus生成简单的pdf报告

Django 使用platypus生成简单的pdf报告,django,pdf,reportlab,platypus,Django,Pdf,Reportlab,Platypus,我正在尝试使用django中的reportlab生成pdf报告。通过直接使用画布,我可以得到一个简单的报告,但看起来鸭嘴兽应该会让事情变得更简单。但我不能让一个简单的鸭嘴兽报告工作 def all_comps_pdf_report(request): # Set up HttpResponse object response = HttpResponse(mimetype='application/pdf') response['Content-Disposition'

我正在尝试使用django中的reportlab生成pdf报告。通过直接使用画布,我可以得到一个简单的报告,但看起来鸭嘴兽应该会让事情变得更简单。但我不能让一个简单的鸭嘴兽报告工作

def all_comps_pdf_report(request):

    # Set up HttpResponse object
    response = HttpResponse(mimetype='application/pdf')
    response['Content-Disposition'] = 'attachment; filename=all_competencies.pdf'

    from reportlab.platypus.doctemplate import SimpleDocTemplate
    from reportlab.platypus import Paragraph
    from reportlab.lib import styles

    doc = SimpleDocTemplate(response)
    Elements = []
    p = Paragraph("Hello World", styles['Heading1'])
    Elements.append(p)
    doc.build(Elements)
    return response

我收到一个错误,
'module'对象不可订阅
,它抱怨行
p=段落(“Hello World”,styles['Heading1'])
。我做错了什么?

您得到的是
“模块”对象是不可订阅的
,因为您将模块视为一个数组:)

如果你浏览reportlab的源代码,你会发现styles只是一个模块,里面有很多东西

要使此示例起作用,您需要导入样式表:
从reportlab.lib.styles导入getSampleStyleSheet
,然后导入
styles=getSampleStyleSheet()


或者您可以创建自己的样式表-查看reportlab的文档了解如何做到这一点:)

您得到的是
“模块”对象是不可订阅的
,因为您将模块视为数组:)

如果你浏览reportlab的源代码,你会发现styles只是一个模块,里面有很多东西

要使此示例起作用,您需要导入样式表:
从reportlab.lib.styles导入getSampleStyleSheet
,然后导入
styles=getSampleStyleSheet()


或者您可以创建自己的样式表-查看reportlab的文档了解如何做到这一点:)

styles['Heading1']
=>
styles
==module,
['Heading1']
为了清晰起见,不允许只突出显示错误发生的确切位置。继续,这里没什么可看的~~~>
style['Heading1']
=>
style
==module,
['Heading1']
为了清晰起见,不允许只突出错误发生的确切点。继续,这里没什么可看的~~>