首页 > 解决方案 > 尝试使用reportlab生成pdf时出现404

问题描述

我正在尝试实现生成 pdf 文件以从views.py. 现在我正在使用django 文档中提供的示例代码,但是由于某种原因,当我尝试生成示例 pdf 时,我收到 404 错误消息:

The current path, stv/DRG_result, didn't match any of these.

--bunch of urls paths--

The current path, stv/DRG_result, didn't match any of these.

这似乎合乎逻辑,因为我没有为此设置任何路径urls.py(因为没有需要它的信息)。我应该设置它吗?有人可以告诉我如何正确地做到这一点,因为我对 django 很陌生。还是错误在其他地方?

我的相关views.py部分:

import io
from django.http import FileResponse
from reportlab.pdfgen import canvas 

def DRG_result(request):

    buffer = io.BytesIO()
    p = canvas.Canvas(buffer)

    p.drawString(100, 100, "hello world.")

    p.showPage()
    p.save()

    buffer.seek(0)
    return FileResponse(buffer, as_attachment=True, filename='hello.pdf')

模板中调用此函数的按钮的代码部分:

    <form action='DRG_result' method='GET'>     
        {% csrf_token %}
        <button type="submit" >Generuoti PDF</button>
    </form>

标签: djangodjango-viewsreportlab

解决方案


我找出如何修改urls.py文件。原来我需要添加这个:

from django.conf.urls import url

urlpatterns = [
    url(r'^DRG_result/$', views.DRG_result, name='DRG_result'),
]

推荐阅读