视图在 HttpResponse 时运行两次(如果为"应用程序/pdf"类型)



我用的是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视图运行两次

最新更新