在urls.py django中提高404而不是500

时间:2011-10-07 08:37:30

标签: django django-urls

我有一个由django提供支持的网站。我没有抓到很少的网址模式 说www.mysite.com/12233445 www.mysite.com/@##$$$ www.mysite.com/alphabetagamma这导致500错误页面,我希望所有这些非标准网址重定向到404错误页面。任何线索是最好的方法吗?

3 个答案:

答案 0 :(得分:1)

通过使用自定义 handler500 ,您可以将响应状态代码从500更改为404.让您的项目返回此帖子可能会帮助您了解如何执行此操作 - http://ilian.i-n-i.org/custom-404-not-found-page-with-django-cms/

但正如@Daniel所说,找不到500页是不正常的。打开调试模式并检查错误导致500。

答案 1 :(得分:1)

您是否创建了404.html模板?如果DEBUG = False中有settings.py,但尚未创建404.html模板,则会发生这种情况。这会引发TemplateDoesNotExist异常,因此错误500响应。

答案 2 :(得分:1)

转到您的视图,在try except块中执行所有get / filter操作。

try:

variable = object.get(some checks here)

except: object.DoesNotExist
 raise Http404

return (whatever)
相关问题