如何扩展使用AbstractBaseUser创建的现有自定义用户模型,使其具有多种用户类型,例如客户,培训师和作者?

时间:2019-12-04 11:17:40

标签: python django django-models django-authentication django-users

我有一个基于Django doc创建的现有自定义用户模型,该模型具有基于电子邮件的身份验证。

我想将模型扩展为具有多种用户类型,例如客户,培训师和作者。

我不确定该如何进行,最好的扩展方式是什么?

此外,我是否已对 AbstractBaseUser 选择了正确的选择,还是应该使用 AbstractUser 类。

1 个答案:

答案 0 :(得分:1)

将您的MyUser类重命名为MyUserBase或MyUserAbstract,然后在此类中

class MyUserBase(AbstractBaseUser):
  class Meta:
    abstract = True
  .
  .
  .

现在您可以扩展它:

然后重新创建MyUser类,如下所示:

class MyUser(MyUserBase):
  pass

和其他类似的模型:

class Trainer(MyUserBase):
  ... #other properties

class Customer(MyUserBase):
  ... #other properties