【发布时间】:2013-02-24 05:04:51
【问题描述】:
我有一个视图突然停止工作。显然有些事情一定发生了变化,但我不知道是什么。
视图应该返回一个 pdf 文件(即 content-disposition 是附件) 调用视图时,浏览器会尝试下载 pdf,但无论如何它总是 0 字节。
我在这里和那里记录以调试问题所在。我可以看到,当从 generate_pdf 返回响应对象时,它具有正确的内容。不知何故,它在客户端浏览器之间消失了。
有人有什么想法吗?
django 1.3、nginx、uwsgi
views.py
def get(self, request, *args, **kwargs):
...
return generate_pdf(request, 'ps_pdfbase.html', context_dict, returned_file_name)
generate_pdf 函数
...
myfile = StringIO()
result_obj = pisa.CreatePDF(file_data, myfile)
logging.debug('pdf result_obj:\n\tsize:%s\n\terr:%s\n\tlog:%s\n\ttext:%s' % (myfile.tell(),
result_obj.err,
result_obj.log,
result_obj.text, ))
myfile.seek(0)
response = HttpResponse(myfile, mimetype='application/pdf')
logging.debug('response content: %s' % response.content)
response['Content-Disposition'] = 'attachment; filename=' + slugify(returned_file_name) + '.pdf'
return response
【问题讨论】:
-
您的日志中有任何错误消息吗?例如。
/var/log/uwsgi/your-app或/var/log/nginx/your-site
标签: django nginx pdf-generation uwsgi pisa