django - django - 使用reportlab在循环条件下生成多个PDF文件
问题描述
我在一个 django 项目中,并尝试使用 reportlab 在循环条件下生成多个 PDF 文件。
视图.py
def pdftest(request, *args, **kwargs):
if request.method == 'POST':
for x in range(0, 3):
response = HttpResponse(content_type='application/pdf')
buffer = BytesIO()
doc = SimpleDocTemplate(buffer, pagesize=portrait(letter))
elements = []
ptext = 'Hellow World! --- %s' %x
styles=getSampleStyleSheet()
elements.append(Paragraph(ptext, styles['Normal']))
doc.build(elements)
response['Content-Disposition'] = 'attachment; filename="{}"'.format('test.pdf')
pdf = buffer.getvalue()
buffer.close()
response.write(pdf)
return response
context = {}
context['title'] = 'PDF TEST'
return render(request, 'companies/pdftest.html', context)
但我的程序只生成一个 PDF。你对这个问题有任何想法吗?
解决方案
您在return response
循环的第一遍调用,所以显然您的程序永远不会到达第二遍或第三遍。
推荐阅读
- c# - 当缓冲区在对象后面时如何阻止 Unity Stencil 缓冲区
- c# - 如何在屏幕截图之前将数据从循环中取出?
- c# - 为什么在我的 VSTO 加载项中运行异步方法需要 30 倍的时间
- intellij-idea - Glassfish6:所选目录无效 GlassFish 主目录
- java - ExecutorService cannot be provided without an @Provides-annotated method
- html - Media Query Strange Behaviour
- python - 运行脚本时不和谐 Python Raspbian 错误语法无效
- javascript - Grab user geolocation an pass it into contact form 7
- html - 您能否根据 around_action 过滤器中的 yield 块内发生的情况有条件地显示一条 Flash 消息?
- machine-learning - 如何使用 Hyperopt 为 CatBoost 选择 class_weights?