我用的是Django 1.6.5。
我设法查看pdf在我的谷歌浏览器使用这个代码:
def generate_pdf(request):
...
with open("students.pdf", 'r') as pdf:
response = HttpResponse(pdf.read(), 'application/pdf')
return response
但是我注意到视图被调用了两次,这并不酷,因为我在这个视图中有pdf生成代码。
[31/May/2014 00:35:07] "GET /students/pdf/ HTTP/1.1" 200 18040
[31/May/2014 00:35:08] "GET /students/pdf/ HTTP/1.1" 200 18040
当我改变HttpResponse看起来像这样:
response = HttpResponse(pdf.read())
然后它会像在记事本中打开的pdf。pdf显然不渲染,但视图只运行一次。
为什么添加只是'application/pdf'到我的HttpResponse导致视图运行两次?(
之前,我只在Google Chrome上测试过。在Firefox上进行测试时,一切都很正常。对我来说更奇怪的是,在我朋友的笔记本电脑上,在chrome上一切都运行得很好(我说的运行得很好是指只运行一次视图)。然后我有了这个想法-也许是一些chrome扩展造成的?答案是是。我的Google Chrome的AdBlocks导致django视图运行两次