Django - 子类化用户模型时无法登录

时间:2012-01-05 22:07:54

标签: django django-models django-contrib

我搜索了一个类似的问题但到目前为止没有找到。

我有一个User的子类(django.contrib.auth.models.User)。我希望我的网站支持个人用户和业务用户,所以在这种情况下它是:

class BusinessUser(User):
    website = models.CharField(max_length=20)
    objects = UserManager()

我有一个注册表单,可以将用户另存为用户,另一个用户将用户另存为BusinessUser。有问题的案例是BusinessUser:

我已经通过Django控制台检查了注册BusinessUser后是否存在User和BusinessUser对象,并且所有字段都很好(用户名,电子邮件,密码)。

但是,在我的登录页面上,我无法使用我的BusinessUser登录。我可以使用普通用户的注册登录,但不能使用BusinessUser's。

有谁知道可能出错了什么?

谢谢。

2 个答案:

答案 0 :(得分:1)

您已将User分类。不要那样永远。使用配置文件添加其他数据,如果您确实需要两个单独的模型(比如在管理员中为个人和业务用户提供两个单独的视图),则创建代理模型和自定义管理器,仅过滤来自User的个人或业务用户

答案 1 :(得分:1)

当django的User子类

时,应该使用自定义身份验证后端

您可以看到示例here

我没有对此进行测试,但我相信这会有效。