【发布时间】:2016-05-11 09:58:11
【问题描述】:
根据documentation,这应该相当简单:我只需要定义handler404。目前我正在做,在我的顶部urls.py:
urlpatterns = [
...
]
handler404 = 'myapp.views.handle_page_not_found'
应用程序已安装。对应的视图就是(暂时只想重定向到首页以防404的情况):
def handle_page_not_found(request):
return redirect('homepage')
但这没有任何效果:标准(调试)404 页面已显示。
文档有点含糊:
- 应该在哪里定义
handler404?文档在URLconf中说,但是,到底在哪里?我有几个应用程序,每个应用程序都有不同的urls.py。我可以把它放在其中的任何一个中吗?在顶部URLconf?为什么?这是在哪里记录的? - 这个处理程序会捕获什么?它会捕获
django.http.Http404、django.http.HttpResponseNotFound、django.http.HttpResponse(与status=404)吗?
【问题讨论】:
-
您的设置中的
DEBUG是什么?如果是True,能不能换成False看看? -
@ShangWang:谢谢!事实上,将其设置为
False可以解决问题。这没有记录,afaik。 -
@delavnog - 在 error reporting sections 中 - “当 DEBUG 为 False 时,...”
-
@Sayse:在完全不同的上下文中(电子邮件报告,...),与错误处理程序无关。在相应的段落中提及这一点会更有意义,但我离题了......
-
@delavnog - 我只是更多地指出它确实提到它在那里提到它,它在debug 的设置部分下暗示它如何处理错误页面,并且有很多其他引用
DEBUG:)
标签: django http-status-code-404