我使用django生成pdf并在视图中将响应作为附件返回。
response = HttpResponse(mimetype='application/pdf')
response['Content-Disposition'] = 'attachment; filename=somefilename.pdf'
与文档(http://docs.djangoproject.com/en/dev/howto/outputting-pdf/#write-your-view)
中描述的方式类似重新加载页面的最佳方法是什么?
这没有用(表单触发pdf生成):
$('#the_form').submit(function(){
location.reload();
});
非常感谢, 丹尼
答案 0 :(得分:1)
不要重装。而是创建一个视图,该视图是表单的目标。该视图在从真实Web服务器传送的目录中生成PDF,然后将用户发送到适当的URL,在那里他可以下载文件(使用HttpResponseRedirect)。
答案 1 :(得分:0)
只需将表单目标设置为生成pdf的视图即可。下面我提到了这种方法的一些优点和缺点与Martin建议的方法(将文件写入世界可以阅读的目录)
优点:
缺点:
-
另一种解决方案是使用网络服务器的X-SendFile标头。谷歌搜索您的特定服务器的说明。一般的想法是,您的视图为Web服务器提供了一个文件的路径,然后Web服务器将直接从磁盘读取并返回给用户。您甚至可以“强行下载”这些文件,查看您的网络服务器的文档,了解如何操作。