我在考虑是否要捕获所有Django反向异常并提高404而不是500s。
这个问题类似于: Django reverse and url default instead of NoReverseMatch
例如,如果我有一个模仿Django的本机登录装饰器的身份验证应用程序。如果视图已装饰且用户未经过身份验证,则会首先将其重定向到登录页面。
我在装饰者中有一个反向('登录')调用。假设我决定将urlsconf中提供的url名称更改为“my_login”但无意中忘记更新我的装饰器。
这应该是404还是500错误?我倾向于500,因为没有合理的回落来处理异常。重定向是内部的,资源确实存在,我只是做了“拼写错误”。
尝试/除了每个反向调用似乎都朝着捕获NameErrors和SyntaxErrors的方向发展。
感谢您的帮助。
答案 0 :(得分:3)
404适用于未找到客户端请求的资源的情况。由于逆转是服务器操作,因此5XX响应是合适的。