2017-09-17 71 views
0

加載超級用戶通過我加燈具超級用戶:無法登錄到Django管理通過夾具

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": "[email protected]" 
     } 
    } 
    ] 

然後我嘗試登錄到管理員,但有錯誤:

"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": "[email protected]", 
     "date_joined": "2017-09-17T13:01:51.009Z" 
    } 
} 
] 

我用django1.6和sqlite3的

什麼我錯了嗎?

回答

0

像所有行爲良好的網頁框架一樣,Django stores passwords as hashes。根據設計,哈希是單向的:您無法從存儲的哈希中獲取用戶的密碼。

我懷疑loaddata只是簡單地將數據插入數據庫。 dumpdata顯示"password": "admin"證實了這一點。您將無法以該用戶創建的方式登錄,因爲沒有密碼會散列到"admin"

最好的解決辦法是可能通過createsuperuser成你想要的密碼來創建一個admin用戶,然後使用dumpdata產生你的燈具。 createsuperuser會照顧你的密碼。您應該在密碼字段中看到一個長而隨意的字符串。