创建Django管理员帐户:密码值为空
在Django项目中,我使用以下脚本创建创建Django管理员帐户:密码值为空,django,Django,在Django项目中,我使用以下脚本创建admin帐户: 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 constrai
admin
帐户:
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
为什么会这样?来自:
设置密码(原始密码):
将用户密码设置为给定的原始字符串,注意密码哈希
它为您设置密码,然后返回None
,因此不要将其重新分配给user.password
。换句话说,只要做:
admin.username = 'admin'
admin.set_password('admin')
admin.save()
.set\u password()
已设置给定用户的密码,因此不返回任何内容。因此,您只需执行以下操作:
>>> admin.set_password('admin')
>>> admin.save()
假设您想创建一个对所有内容都有权限的用户,为什么不改为使用:
因此,您不必手动将
.is\u superuser
和.is\u staff
设置为True
这太棒了!谢谢。
>>> User.objects.create_superuser(username="admin", password="admin", email=None)