我正在考虑是否要捕获所有 Django 反向异常并引发 404 而不是 500。
这个问题类似于: Django reverse and url default instead of NoReverseMatch
例如,如果我有一个模仿 Django 的本机登录装饰器的身份验证应用程序。如果一个视图被修饰并且用户没有被认证,他们首先被重定向到登录页面。
我在装饰器中有一个 reverse('login') 调用。假设我决定将 urlsconf 中提供的 url 名称更改为“my_login”,但无意中忘记更新我的装饰器。
这应该是 404 还是 500 错误?我倾向于 500,因为没有合理的后备来处理异常。重定向是内部的,资源确实存在,我只是做了一些“错字”。
尝试/排除每个反向调用似乎都在朝着捕获 NameErrors 和 SyntaxErrors 迈进。
谢谢你的帮助。