Python 我的自定义用户模型应该是抽象类吗?

Python 我的自定义用户模型应该是抽象类吗?,python,django,Python,Django,我使用自定义用户模型创建了一个项目,并通过以下方式将配置文件链接到我的用户: class User(AbstractBaseUser, PermissionsMixin): # ... class BizProfile(models.Model): user = models.OneToOneField(settings.AUTH_USER_MODEL) # .... class CliProfile(models.Model): user = models.One

我使用自定义用户模型创建了一个项目,并通过以下方式将配置文件链接到我的用户:

class User(AbstractBaseUser, PermissionsMixin):
    # ...

class BizProfile(models.Model):
   user = models.OneToOneField(settings.AUTH_USER_MODEL)
   # ....

class CliProfile(models.Model):
   user = models.OneToOneField(settings.AUTH_USER_MODEL)
   # ....
我刚刚意识到,在功能上,我创建了BizProfile或CliProfile,但仅在我的项目中创建用户是没有意义的

在这种情况下,我应该使我的用户类抽象吗?这样做的利弊是什么?目前,它不是抽象的,但效果很好

谢谢。

那是不可能的

抽象模型是数据库中不存在的模型。要使外键工作,数据库中必须存在两个模型。
用户
模型中的数据也需要保存到数据库中

也不可能有两个独立的用户模型(例如,
BizUser
CliUser
),因为Django和其他第三方应用程序中的所有代码都希望有一个单一的用户模型,而不会与多个模型一起工作。

这是不可能的

抽象模型是数据库中不存在的模型。要使外键工作,数据库中必须存在两个模型。
用户
模型中的数据也需要保存到数据库中


也不可能有两个独立的用户模型(例如,
BizUser
CliUser
),因为Django和其他第三方应用程序中的所有代码都希望有一个单一的用户模型,而不会与多个模型一起工作。

正如@knbk回答的那样,使用基本自定义用户或Django用户(如果您不需要更改用于auth等的主字段),则将配置文件添加为一对一字段(正如您在此处所做的)。正如@knbk所回答的,使用基本自定义用户或django用户(如果您不需要更改用于auth等的主字段),然后将配置文件添加为一对一字段(正如您在此处所做的).谢谢你的解释!谢谢你的解释!