存储自定义的django auth_user模型

时间:2013-11-21 16:55:00

标签: django authentication

我正在网站上工作,对于登录信息,我使用的是定制的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数据存储在数据库中的最佳解决方案是什么?

1 个答案:

答案 0 :(得分:1)

使用set_password functionality provided by django User

x = MyUser.objects.create(
    username = #something,
    ...
 )
x.set_password(#something)
x.save()

现在,set_password将应用散列算法,并为您存储加密密码,而您正在执行的操作只会设置纯文本密码,这就是问题。