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