【问题标题】:Upgrading from Django 1.3 to 1.5从 Django 1.3 升级到 1.5
【发布时间】:2013-07-11 05:46:22
【问题描述】:

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

【问题讨论】:

    标签: django


    【解决方案1】:

    根据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 包,并创建一个连接到同一数据库的虚拟项目/应用程序来试用。如果您有管理员权限并且已经使用管理界面,您可以使用该界面登录。

    【讨论】:

      【解决方案2】:

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

      特别是,我更改了我的 urls 调用,因为我在 url 标签中使用了没有引号的命名 url,并且 django 不再支持它。正确的方式是这样的:{% url 'name_of_the_view' arg1 arg2%}

      我建议您创建另一个环境并尝试使用 django 1.5 进行一些小改动。

      【讨论】:

      • 这比我希望的要痛苦一些,我最终只升级到 1.4.5 我猜 sentry 还没有为 django 1.5 做好准备。结果证明密码不是问题,但我使用 pinax 作为入门项目,并且发生了很大的变化。我最终只是完全撕掉了pinax。
      猜你喜欢
      • 2013-05-30
      • 1970-01-01
      • 2013-11-21
      • 2013-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多