2016-05-18 154 views
3

的空值在Django項目,我有以下腳本來創建一個admin帳戶:創建Django管理用戶名:密碼

User.objects.all().delete() 
admin = User() 
admin.username = 'admin' 
admin.password = admin.set_password('admin') 
admin.save() 

但我得到的錯誤信息:

psycopg2.IntegrityError: null value in column "password" violates not-null constraint 

這是爲什麼?

回答

5

the docs

set_password(raw_password): 設置用戶的密碼,以給定的字符串,取密碼散列的照顧。

它爲您設置密碼,然後返回None,所以不要將它分配回user.password。換句話說,只是做:

admin.username = 'admin' 
admin.set_password('admin') 
admin.save() 
4

.set_password()已經設置給用戶的密碼,所以不返回任何東西。因此,你應該只是做:

>>> admin.set_password('admin') 
>>> admin.save() 

假設你想創建一個將有權限適用於所有的用戶,你爲什麼不使用.create_superuser()代替:

>>> User.objects.create_superuser(username="admin", password="admin", email=None) 

所以你不必手動設置.is_superuser.is_staffTrue

+0

這太棒了!非常感謝。 –

相關問題