0

我已经使用 Django 1.5.4 设置了一个新服务器来测试我的一个应用程序并遇到了问题(该应用程序在 Django 1.4.2 中运行良好)

Django Version: 1.5.4
Exception Type: AttributeError
Exception Value: 'module' object has no attribute 'simple_class_factory'
Exception Location: /usr/local/lib/python2.7/dist-packages/Django-1.5.4-py2.7.egg/django/contrib/se‌​ssions/serializers.py in loads, line 17 Python
Executable: /usr/bin/python Python Version: 2.7.3 

有什么建议么?

这可能是相关的,但我很难过:https ://code.djangoproject.com/ticket/20289

4

2 回答 2

4

刚刚在 Django 1.10 中遇到了同样的问题。新版本不知道如何unpickle旧版本缓存。

所以它与会话无关,但与缓存有关。

您需要 (A) 清除缓存,或 (B) 升级缓存。

(A) 清除缓存

在 shell 中手动运行它。

from django.core.cache import cache
cache.clear()

请注意,您可能会有停机时间,因此最好只增加版本...

(B) 版本升级(推荐)

设置/增加VERSION您的CACHE设置内部(请参阅缓存版本控制)。例子:

CACHES = {
    "default": {
        (...)
        'VERSION': 2,
    }
}
于 2016-10-25T11:38:50.110 回答
3

在 Django 1.4 中创建了一些用户会话对象,它们与您较新的 Django 安装不兼容。您需要清除用户会话:

python manage.py clearsessions

这将从服务器清除所有会话数据。不幸的是,如果您SESSION_ENGINE设置为signed_cookies会话数据保存在用户的浏览器中而不是服务器中,那么在服务器上清除它不会有太大作用。

SECRET_KEY您可以通过更改设置来使用户计算机上的所有旧 cookie 无效(您可以使用生成器来获取另一个随机值)。

或者,如果该站点未在生产中并且您是唯一的用户,只需在您自己的浏览器中清除 cookie 即可。

于 2013-10-01T14:29:00.857 回答