我想将现有应用程序升级到更新版本的 django。在 1.4 中,他们更改了密码哈希算法,这样当人们尝试登录时,我所有的旧密码都将不再匹配。有什么方法可以升级但不需要用户重置密码?
问问题
227 次
2 回答
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
包并创建一个连接到同一数据库的虚拟项目/应用程序来试用。如果您具有管理员权限并且已经使用管理界面,则可以使用该界面登录。
于 2013-07-11T05:53:15.200 回答
1
我上个月做了同样的升级,Django 密码仍然可以正常工作。我所做的更改基本上是在通用视图中(现在所有通用视图都是基于类的),settings.py 中的日志记录已更改,我必须放置一个 ALLOWED_HOSTS 列表。例如:ALLOWED_HOSTS = ['.stackoverflow.com']
特别是,我更改了我的 urls 调用,因为我在 url 标签中使用了没有引号的命名 url,并且 django 不再支持它。正确的方法是这样的:{% url 'name_of_the_view' arg1 arg2%}
我建议您创建另一个环境并尝试使用 django 1.5 进行一些小改动。
于 2013-07-11T05:59:08.607 回答