2017-09-17 9 views
0

介してロードスーパーユーザと管理者をジャンゴにはログインできません:は私が備品を経由してスーパーユーザーに追加備品

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 

ショーthet

[ 
{ 
    "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を経由して、ご希望のパスワードでその後、使用dumpdataadminユーザーを作成すると考えられます。 createsuperuserはあなたのパスワードをハッシュします。パスワードフィールドには、長くてランダムな文字列が表示されます。

関連する問題