在我的一种观点中,我有代码:
raise Http404
当DEBUG=False
Django 呈现模板500.html
而不是正确的404.html
! 我不明白为什么!
编辑:当DEBUG=True
我得到标准的(由Django)
Page not Found (404)
You're seeing this error because you have DEBUG = True in your Django settings file. Change that to False, and Django will display a standard 404 page.
更重要的是,在runserver
控制台中我可以清楚地看到404
代码。相反DEBUG=False
,在控制台中设置时,我得到一个500
!! 这太奇怪了。
编辑 2:如果我在提出之前放置一个打印语句,Http404
我会在何时看到消息,DEBUG=True
但不是在何时False
!
编辑 3:我可以确认DEBUG=False
该语句何时raise Http404
未达到。怎么可能??
更新
实际上,DEBUG=False
在每个 URL 上我都会得到 500。虽然DEBUG=True
这不会发生。怎么可能??它应该运行相同。我开始认为这是一个 Django 错误。