从 shell 创建用户时的 django 哈希密码

django hash password when create user from shell

我正在使用 this example 创建自定义 User 模型。我想通过 django shell.

测试一下

当我使用 MyUser.objects.create(email='some@example.com', data_of_birth=datetime.date.today(), password='somepassword') 从 django shell 创建用户时,密码不会被散列并以明文形式存储在数据库中。

但是如果我通过 django 管理门户创建一个用户,它会被存储为一个散列。

我需要做什么才能在 shell 之前将其存储为散列?我需要自己实现一些功能吗?

Django 版本 1.7.3

使用User.set_password():

user = MyUser(email='some@example.com'), ...)
user.set_password('somepassword')
user.save()
staff = Staff()
staff.username = username
staff.set_password(password)
staff.save()

这里的 staff 是继承自 USER 的模型,当用户输入你给 [=13th=] 的密码时,django 自动转换成 hasble pwd