2013-07-11 225 views
2

我想將現有應用程序升級到更新版本的django。在1.4版中,他們更改了密碼散列算法,以便在人們嘗試登錄時我的舊密碼將不再匹配。有沒有辦法升級,但不需要用戶重置密碼?從Django 1.3升級到1.5

回答

1

上個月我做了同樣的升級,Django密碼仍然功能齊全。我所做的更改基本上是在通用視圖中(現在所有通用視圖都是基於類的),settings.py中的日誌記錄已更改,我必須放置ALLOWED_HOSTS列表。例如:ALLOWED_HOSTS = ['.stackoverflow.com']

特別是,我改變了我的url調用,因爲我使用的是url標記中沒有引號的命名url,它沒有渴望被django支持。正確的方法是這樣的:{% url 'name_of_the_view' arg1 arg2%}

我建議你創建另一個環境,並嘗試使用django 1.5只是做這個小的改變。

+0

這比我所希望的更痛苦一點,我最終只升級到了1.4.5我猜哨兵對django 1.5還沒有做好準備。密碼結果不是問題,但我已經使用pinax作爲啓動項目,並且發生了很大的變化。我最終完全撕掉了pinax。 –

3

根據https://docs.djangoproject.com/en/dev/topics/auth/passwords/#auth-password-storage它仍然會照常檢查一切。

如果您擔心默認情況下將所有東西都存儲爲SHA1,則首先將hasher放入列表中(但不建議這樣做)。

# settings.py 
PASSWORD_HASHERS = (
    'django.contrib.auth.hashers.SHA1PasswordHasher', 
    'django.contrib.auth.hashers.PBKDF2PasswordHasher', 
    ... 
) 

,如果你需要檢查自己,你可以考慮使用virtualenv與新django==1.5包,並創建連接到同一個數據庫的虛擬項目/應用程序來嘗試一下。如果您擁有管理員權限並已使用管理界面,則可以使用它登錄。