当我从django-admin个用户创建用户时,密码是加密的. 但是当我从Django shell User-Password创建用户时,它是以纯文本保存的. 示例:

{
    "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"
} 

我正在try 为一个简单的博客应用程序制作睡觉风格的接口: 当我try 通过POST请求[通过传递JSON]插入用户时,密码保存为纯文本. 如何重写此行为.

推荐答案

您不应该像其他人建议的那样,通过正常的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()

Django相关问答推荐

DRF中没有参数的视图的警告-壮观

在模板中自动添加变量

从url参数过滤的Django日期范围返回空查询集

有谁知道是否可以将您的 Django Heroku 应用程序放到 App Store/Google Play 上?

Django模型中的密码字段

使用 Vagrant 进行端口转发时连接重置

Django:使用 Django ORM 实现 JOIN?

恢复 Django 1.7 RemoveField 迁移

用于测试文件下载的 Django 单元测试

Django 基于角色的视图?

将 XML 从 URL 解析为 python 对象

jinja2模板引擎中的这个-是做什么的?

OrderingFilter 没有属性filter_queryset

django 模板 if 或语句

Django unique=True 不工作

Django manage.py:在其依赖之前应用迁移

Django 在视图之间传递数据

django 应用基于条件的样式类

Django 的 Select .如何设置默认选项?

如何检测 Heroku 的环境?