如何从 django shell 创建用户
回答问题 当我从django-admin创建用户时,用户密码被加密。但是当我从 django shell 创建用户时,用户密码以纯文本形式保存。例子 : { "date_joined": "2013-08-28T04:22:56.322185", "email": "", "first_name": "", "id": 5, "is_active": true, "is_staff": false
·
回答问题
当我从django-admin
创建用户时,用户密码被加密。但是当我从 django shell 创建用户时,用户密码以纯文本形式保存。例子 :
{
"date_joined": "2013-08-28T04:22:56.322185",
"email": "",
"first_name": "",
"id": 5,
"is_active": true,
"is_staff": false,
"is_superuser": false,
"last_login": "2013-08-28T04:22:56.322134",
"last_name": "",
"password": "pbkdf2_sha256$10000$iGKbck9CED0b$6hWrKYiMPNGKhcfPVGal2YP4LkuP3Qwem+2ydswWACk=",
"resource_uri": "/api/v1/user/5/",
"username": "user4"
},
{
"date_joined": "2013-08-29T01:15:36.414887",
"email": "test@ophio",
"first_name": "",
"id": 6,
"is_active": true,
"is_staff": true,
"is_superuser": true,
"last_login": "2013-08-29T01:15:36.414807",
"last_name": "",
"password": "123test",
"resource_uri": "/api/v1/user/6/",
"username": "test3"
}
我正在尝试为一个简单的博客应用程序制作 REST 样式的 api:当我尝试通过 post 请求插入用户时 [ 通过传递 JSON ] 密码保存为纯文本。如何覆盖此行为。
Answers
您不应该像其他人建议的那样通过普通的User(...)
语法创建用户。您应该始终使用User.objects.create_user()
,它负责正确设置密码。
user@host> manage.py shell
>>> from django.contrib.auth.models import User
>>> user=User.objects.create_user('foo', password='bar')
>>> user.is_superuser=True
>>> user.is_staff=True
>>> user.save()
更多推荐
已为社区贡献126483条内容
所有评论(0)