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

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

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

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

最佳答案

将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

07-26 02:49