2016-05-18 11 views
3

のnull値を、私はadminアカウントを作成するには、次のスクリプトを持っている: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 

を何故ですか? the docsから

答えて

5

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

これは素晴らしいです!どうもありがとう。 –

関連する問題