2013-07-11 179 views
2

我想将现有应用程序升级到更新版本的django。在1.4版中,他们更改了密码散列算法,以便在人们尝试登录时我的旧密码将不再匹配。有没有办法升级,但不需要用户重置密码?从Django 1.3升级到1.5

回答

1

上个月我做了同样的升级,Django密码仍然功能齐全。我所做的更改基本上是在通用视图中(现在所有通用视图都是基于类的),settings.py中的日志记录已更改,我必须放置ALLOWED_HOSTS列表。例如:ALLOWED_HOSTS = ['.stackoverflow.com']

特别是,我改变了我的url调用,因为我使用的是url标记中没有引号的命名url,它没有渴望被django支持。正确的方法是这样的:{% url 'name_of_the_view' arg1 arg2%}

我建议你创建另一个环境,并尝试使用django 1.5只是做这个小的改变。

+0

这比我所希望的更痛苦一点,我最终只升级到了1.4.5我猜哨兵对django 1.5还没有做好准备。密码结果不是问题,但我已经使用pinax作为启动项目,并且发生了很大的变化。我最终完全撕掉了pinax。 –

3

根据https://docs.djangoproject.com/en/dev/topics/auth/passwords/#auth-password-storage它仍然会照常检查一切。

如果您担心默认情况下将所有东西都存储为SHA1,则首先将hasher放入列表中(但不建议这样做)。

# settings.py 
PASSWORD_HASHERS = (
    'django.contrib.auth.hashers.SHA1PasswordHasher', 
    'django.contrib.auth.hashers.PBKDF2PasswordHasher', 
    ... 
) 

,如果你需要检查自己,你可以考虑使用virtualenv与新django==1.5包,并创建连接到同一个数据库的虚拟项目/应用程序来尝试一下。如果您拥有管理员权限并已使用管理界面,则可以使用它登录。