0

从某种意义上说,我遇到了一个相当奇怪的问题,我无法理解它可能是什么。我的网站使用 django-registration 并且一切正常,但是如果我重新启动 django dev。服务器在会话中间(即已登录)我立即得到错误:

渲染时遇到异常: 'django.contrib.auth.decorators._CheckLogin object at 0x235aa50' 与参数 '()' 和关键字参数 '{}' 未找到。

再一次:如果我不重新启动开发,一切正常。服务器。当且仅当我重新启动 djange dev 时才会发生此错误。服务器已登录到我的网站。

4

1 回答 1

4

不幸的是,Django 中的 URL 反向功能非常脆弱。它通过导入所有视图并查看哪些视图匹配来工作。如果由于某种原因它不能导入视图——任何附加到 URLconf 的视图——那么整个反向匹配就会失败。

因此,有时您的视图中存在一些依赖关系,这意味着它们无法在您重新启动服务器后直接导入。这会导致所有 URL 反向匹配失败,即使是与问题视图无关的那些。但是如果你刷新页面,你经常会发现错误消失了。

该错误可能根本不在 django-registration 中,而是在您自己的观点中非常模糊的地方。我会尝试注释掉所有其他 url,然后一一重新启用它们 - 每次重新启动开发服务器 - 查看错误何时出现。

于 2009-05-26T14:33:09.103 回答