【问题标题】:dynamically viewing and downloading pdf in django在 django 中动态查看和下载 pdf
【发布时间】:2020-11-27 09:13:44
【问题描述】:

我想在我的电子商务网站中查看和下载某个时间段内某些发票的 pdf。表格中没有存储此类数据。我只想在某个时间段内以 pdf 方式显示发票。我给了我的在这里查看功能。不幸的是,我无法显示我动态查看的任何数据。

def render_to_pdf(template_src, context_dict={}):
template = get_template(template_src)
html  = template.render(context_dict)
result = BytesIO()
pdf = pisa.pisaDocument(BytesIO(html.encode("ISO-8859-1")), result)
if not pdf.err:
    return HttpResponse(result.getvalue(), content_type='application/pdf')
return None



class ViewPDF(View):
def get(self, request, *args, **kwargs):
    
    if request.method=="POST":
    date_from=request.POST.get("date_from")
    date_to=request.POST.get("date_to")
    select=request.POST.get("select")
    a=db_cart.objects.all().filter(updated_at__lte=date_to,updated_at__gte=date_from,stage=select,status=1)
    pdf = render_to_pdf('reportpdf.html',{'ob':a})
    return HttpResponse(pdf, content_type='application/pdf')


class DownloadPDF(View):
def get(self, request, *args, **kwargs):
    pdf=render_to_pdf('reportpdf.html')
    response=HttpResponse(pdf, content_type='application/pdf')
    filename="report%s.pdf"%("12341231")
    content="attachment; filename='%s'" %(filename)
    response['Content-Disposition']=content
    return response

【问题讨论】:

    标签: django pdf dynamic view invoice


    【解决方案1】:

    您似乎没有将上下文争论传递给您的 render_to_pdf 函数。另外,由于render_to_pdf 已经返回HttpResponse,请尝试仅返回pdf,如下所示:

    class ViewPDF(View):
    
        def get(self, request, *args, **kwargs):
            context = {}  # Add something to your context object here
            pdf = render_to_pdf('reportpdf.html', context)
            return pdf
    

    【讨论】:

    • 事情是我想在一段时间内查看 pdf。也就是说我不想在这里显示任何静态内容。请再次检查 viewPDF。我已经在这里修改了一些代码
    • 对不起,我不太清楚你在这里想说什么。但是,您仍然没有使用 DownloadPDF 视图将上下文对象传递给 render_to_pdf 函数。您还在HttpResponse 中返回HttpResponse,请尝试更改它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多