2

我想将现有应用程序升级到更新版本的 django。在 1.4 中,他们更改了密码哈希算法,这样当人们尝试登录时,我所有的旧密码都将不再匹配。有什么方法可以升级但不需要用户重置密码?

4

2 回答 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 回答