0

我正在考虑是否要捕获所有 Django 反向异常并引发 404 而不是 500。

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

例如,如果我有一个模仿 Django 的本机登录装饰器的身份验证应用程序。如果一个视图被修饰并且用户没有被认证,他们首先被重定向到登录页面。

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

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

尝试/排除每个反向调用似乎都在朝着捕获 NameErrors 和 SyntaxErrors 迈进。

谢谢你的帮助。

4

1 回答 1

4

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

于 2012-08-09T06:00:04.277 回答