0

我使用 Django 1.8、reportlab 和 xhtml2pdf、html5lib、pypdf,视图如下所示(https://stackoverflow.com/a/1377652/4496057

def render_to_pdf(template_src, context_dict, request):
    template = get_template(template_src)
    context = Context(site_pages(request))
    html = template.render(context)
    result = StringIO.StringIO()

    pdf = pisa.pisaDocument(StringIO.StringIO(html.encode("UTF-8")), result)
    if not pdf.err:
        return HttpResponse(content=result.getvalue(), content_type='application/pdf')
    return HttpResponse('We had some errors<pre>%s</pre>' % escape(html))

我收到以下错误更新(整个回溯):

Internal Server Error: /system/MNE/1212/doctor/summary-pdf/8/123123123
Traceback (most recent call last):
  File "/home/vagrant/sat/lib/python2.7/site-packages/django/core/handlers/base.py", line 164, in get_response
    response = response.render()
  File "/home/vagrant/sat/lib/python2.7/site-packages/django/template/response.py", line 158, in render
    self.content = self.rendered_content
  File "/home/vagrant/sat/lib/python2.7/site-packages/django/template/response.py", line 135, in rendered_content
    content = template.render(context, self._request)
  File "/home/vagrant/sat/lib/python2.7/site-packages/django/template/backends/django.py", line 72, in render
    context = make_context(context, request)
  File "/home/vagrant/sat/lib/python2.7/site-packages/django/template/context.py", line 272, in make_context
    context.push(original_context)
  File "/home/vagrant/sat/lib/python2.7/site-packages/django/template/context.py", line 55, in push
    return ContextDict(self, *args, **kwargs)
  File "/home/vagrant/sat/lib/python2.7/site-packages/django/template/context.py", line 20, in __init__
    super(ContextDict, self).__init__(*args, **kwargs)
ValueError: dictionary update sequence element #0 has length 5918; 2 is required

此错误似乎特定于 HTTPResponse,其他 stackoverflow 帖子没有帮助

4

0 回答 0