我想将现有应用程序升级到更新版本的django。在1.4中,他们更改了密码哈希算法,以便当人们尝试登录时,我的旧密码将不再匹配。有没有办法升级但不要求用户重置密码?
答案 0 :(得分:3)
根据https://docs.djangoproject.com/en/dev/topics/auth/passwords/#auth-password-storage,它仍会照常检查所有内容。
如果你担心默认情况下将所有内容都存储为SHA1
,那么先将哈希放在列表中(不建议这样做)。
# settings.py
PASSWORD_HASHERS = (
'django.contrib.auth.hashers.SHA1PasswordHasher',
'django.contrib.auth.hashers.PBKDF2PasswordHasher',
...
)
如果您需要自行检查,可以考虑将virtualenv
与更新的django==1.5
包一起使用,并创建一个连接到同一数据库的虚拟项目/应用程序来试用它。如果您具有管理员权限并且已经使用管理界面,则可以使用该界面登录。
答案 1 :(得分:1)
我上个月做了同样的升级,Django密码仍然完全正常运行。我所做的更改基本上是在通用视图中(现在所有通用视图都是基于类的),settings.py中的日志记录已更改,我必须输入ALLOWED_HOSTS列表。例如:ALLOWED_HOSTS = ['.stackoverflow.com']
特别是,我更改了我的网址调用,因为我在url标记中使用了没有引号的命名网址,并且django并不支持它。正确的方法是这样的:{% url 'name_of_the_view' arg1 arg2%}
我建议您创建另一个环境并尝试使用django 1.5进行这么小的更改。