Django反向异常应该产生404或500吗?

时间:2012-08-09 05:56:10

标签: django http

我在考虑是否要捕获所有Django反向异常并提高404而不是500s。

这个问题类似于: Django reverse and url default instead of NoReverseMatch

例如,如果我有一个模仿Django的本机登录装饰器的身份验证应用程序。如果视图已装饰且用户未经过身份验证,则会首先将其重定向到登录页面。

我在装饰者中有一个反向('登录')调用。假设我决定将urlsconf中提供的url名称更改为“my_login”但无意中忘记更新我的装饰器。

这应该是404还是500错误?我倾向于500,因为没有合理的回落来处理异常。重定向是内部的,资源确实存在,我只是做了“拼写错误”。

尝试/除了每个反向调用似乎都朝着捕获NameErrors和SyntaxErrors的方向发展。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

404适用于未找到客户端请求的资源的情况。由于逆转是服务器操作,因此5XX响应是合适的。