2012-08-09 44 views
0

我正在考虑是否捕获所有的Django反向异常,并提高404s而不是500s。Django反向异常产生404或500?

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

举例来说,如果我有模仿Django的本地登录装饰认证的应用程序。如果一个视图装饰了用户没有被认证,他们首先被重定向到登录页面。

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

这应该是404还是500错误?我会倾向500,因为没有合理的回落来处理这个例外情况。重定向是内部的,资源确实存在我只是做了'错字'的种类。

尝试/除了每个反向调用似乎正走向捕捉NameErrors和SyntaxErrors的一条细线。

感谢您的帮助。

+0

为什么您的单元测试不能捕获反向失败? – 2012-08-09 06:00:36

+0

同意。测试应该足够了。非常感谢 – user1586611 2012-08-09 06:24:53

回答

3

404适用于客户端 - 未找到请求的资源。由于倒车是一个服务器操作,5XX响应将是适当的。

+0

感谢那是我的想法 – user1586611 2012-08-09 06:01:53