如何扩展使用 AbstractBaseUser 创建的现有自定义用户模型以拥有多种用户类型,如客户、培训师和作者?
Posted
技术标签:
【中文标题】如何扩展使用 AbstractBaseUser 创建的现有自定义用户模型以拥有多种用户类型,如客户、培训师和作者?【英文标题】:How can I extend my existing Custom User Model created with AbstractBaseUser to have multiple user types like customer, trainer and author? 【发布时间】:2020-03-29 04:23:42 【问题描述】:我有一个基于Django doc 创建的现有自定义用户模型,用于基于电子邮件 身份验证。
我想扩展模型以拥有多种用户类型,例如客户、培训师和作者。
我不确定如何继续前进,扩展它的最佳方式是什么?
另外,我是否使用 AbstractBaseUser 做出了正确的选择,还是应该使用 AbstractUser 类。
【问题讨论】:
请分享您现有的模型! @AbdulRehman 我现在只有帐户模型和自定义现在This is the code in my models.py with a few additional fields。 【参考方案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
【讨论】:
以上是关于如何扩展使用 AbstractBaseUser 创建的现有自定义用户模型以拥有多种用户类型,如客户、培训师和作者?的主要内容,如果未能解决你的问题,请参考以下文章
如何使 Vue.js 将散列密码发布到 Django REST API AbstractBaseUser 自定义模型?
Django用户认证模块中继承AbstractUser与AbstractBaseUser重写User表的区别