我正在网站上工作,对于登录信息,我使用的是定制的MyUser
模型,它是原始User
模型的子类。现在,要创建MyUser
条记录,我使用
x = MyUser.objects.create(
username = #something,
password = #something,
...
)
x.save()
等。现在,创建了MyUser记录。但是当我进入我的管理页面时,我看到密码的类型为:
Invalid password format or unknown hashing algorithm.
并且authenticate(username,password)
返回None,只有当我转到admin并更改密码时它才能正常工作。将MyUser
数据存储在数据库中的最佳解决方案是什么?
答案 0 :(得分:1)
使用set_password
functionality provided by django User
x = MyUser.objects.create(
username = #something,
...
)
x.set_password(#something)
x.save()
现在,set_password
将应用散列算法,并为您存储加密密码,而您正在执行的操作只会设置纯文本密码,这就是问题。