[英]Can't login to django admin with superuser loaded via fixtures
我通過裝置添加了超級用戶:
python manage.py loaddata data.json
這是我的data.json:
[
{
"pk": 1,
"model": "auth.user",
"fields": {
"username": "admin",
"first_name": "admin",
"last_name": "admin",
"is_active": true,
"is_superuser": true,
"is_staff": true,
"groups": [],
"user_permissions": [],
"password": "admin",
"email": "admin@mail.com"
}
}
]
然后,我嘗試登錄到管理員,但出現錯誤:
"Please enter the correct username and password for a staff account. Note that both fields may be case-sensitive."
輸出
dumpdata auth.user --indent 4 > output.json
顯示他們
[
{
"pk": 1,
"model": "auth.user",
"fields": {
"username": "admin",
"first_name": "admin",
"last_name": "admin",
"is_active": true,
"is_superuser": true,
"is_staff": true,
"last_login": "2017-09-17T13:01:51.009Z",
"groups": [],
"user_permissions": [],
"password": "admin",
"email": "admin@mail.com",
"date_joined": "2017-09-17T13:01:51.009Z"
}
}
]
我使用django1.6和sqlite3
我錯了嗎?
像所有行為良好的Web框架一樣, Django將密碼存儲為哈希值 。 哈希是一種單向方式:您無法從存儲的哈希中獲取用戶密碼。
我懷疑loaddata
只是按原樣將數據插入數據庫中。 dumpdata
顯示"password": "admin"
的事實證實了這一點。 您將無法以這種方式創建的用戶登錄,因為不會有密碼哈希到"admin"
。
最好的解決方案可能是通過createsuperuser
使用所需的密碼創建一個admin
用戶, 然后使用dumpdata
生成您的夾具。 createsuperuser
將負責對您的密碼進行哈希處理。 您應該在密碼字段中看到一個長而隨機的字符串。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.