2013-01-14 139 views
0

所以我从django 1.3升级到1.4,一切都很顺利。然而,一些用户刚获得nginx抛出的Internal Server Error,通常是服务器崩溃的时候。从1.3升级到1.4时导致django崩溃的Cookie

调查显示这是Cookie问题。在日志中的错误是:

ImproperlyConfigured: Error importing authentication backend 
    site.app.backends.EmailModelBackend: "No module named site.app.backends" 

这是在升级过程中,因为我改组我的项目,现在这个特定的后端是app.backends而非site.app.backends。显然,这些信息被硬编码到auth cookie中,这导致了问题。

有没有什么办法可以将用户通过电子邮件发送给用户并告诉他们清除cookie?

回答

2

如果您使用默认的database-backed sessions,那么对旧后端的引用将存储在django_session表中,并且用户的cookie只是对数据库中行的引用。在这种情况下,您可以通过从数据库中删除所有会话数据来防止错误。

在你这样做之前仔细想想。您可能不想删除所有会话数据 - 例如,它会注销所有用户。

+0

注销所有用户不会是世界末日。谢谢你的提示。 – fredley

0

我不认为你可以指责这饼干。请用细齿梳再次检查您的代码,然后查找site.app.backends

如果您可以从崩溃中访问调用堆栈,它会告诉您确切位置。

+0

没有,我有双重检查。这只会影响之前登录到网站的浏览器,并且清除cookie会修复它。 – fredley

+0

你真的到处检查过吗?重定向?网址吗?楷模?自定义中间件? –

+0

'grep -r site.app.backends .'。没有结果。无论如何,它唯一被引用的地方是'settings.py'。 – fredley

相关问题