2015-09-25 60 views
0

我要測試我的Django應用程序登錄,所以我創建了一個名爲「users.py」一個JSON文件,該文件包含以下代碼:無法與JSON

[ 
{ 
    "pk": 1, 
    "model": "auth.user", 
    "fields": { 
      "username": "JLeivinha", 
      "first_name": "", 
      "last_name": "", 
      "is_active": true, 
      "is_superuser": false, 
      "is_staff": false, 
      "last_login": "2015-09-22T10:53:40.913", 
      "groups": [], 
      "user_permissions": [], 
      "password": "hdishfi1", 
      "email": "[email protected]", 
      "date_joined": "2015-09-22T10:53:40.913" 
    } 
}, 
{ 
    "pk": 2, 
    "model": "auth.user", 
    "fields": { 
      "username": "DFarel", 
      "first_name": "", 
      "last_name": "", 
      "is_active": true, 
      "is_superuser": false, 
      "is_staff": false, 
      "last_login": "2015-09-22T10:53:40.913", 
      "groups": [], 
      "user_permissions": [], 
      "password": "mxoasjw2", 
      "email": "[email protected]", 
      "date_joined": "2015-09-22T10:53:40.913" 
    } 
} 
] 

但它不」 t工作:我的應用程序從JSON文件加載創建的用戶,但現在我無法登錄這些人(錯誤'匹配查詢不存在')。 有人可以幫助我嗎?謝謝;)

+2

我們可以看到代碼的應該登錄的用戶的一部分? – EddaSnorra

+2

我想這些都是testusers,但只是注意張貼密碼(和電子郵件地址) –

+1

IIRC密碼必須加密 - 夾具逐字加載數據庫 –

回答

1

夾具中的密碼必須加密,loaddata不是照顧這一點。對密碼進行加密的功能是django.contrib.auth.hashers.make_password,您可以手動使用它從Django的外殼:

(o2)[email protected]:/var/www/playground/project$ ./manage.py shell 
>>> from django.contrib.auth.hashers import make_password 
>>> make_password('mxoasjw2') 
u'pbkdf2_sha256$15000$uvORWeKIoaUS$ISPMoXbc68VRadS94dD8q7MwD43RDsdjiprpOwbQEQ0=' 
+0

也許不需要用於教學目的,但應該(可能)哈希密碼時總是使用salt。 –

+1

@MathieuB:如果在通話時沒有提供鹽,'make_password'會詢問當前'hasher'是否含鹽。 –