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

时间:2014-06-13 16:06:16

标签: python django

我创建了一个带有自定义用户模型的项目,以及链接到我的用户的配置文件,这样:

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,但仅在我的项目中创建用户毫无意义。

在这种情况下,我应该将我的User类抽象化吗?这样做的专业人士和骗子是什么?目前,它不是抽象的,但运作良好。

感谢。

1 个答案:

答案 0 :(得分:3)

那是不可能的。

抽象模型是数据库中不存在的模型。要使外键工作,两个模型都必须存在于数据库中。无论如何,User模型中的数据也需要保存到数据库中。

也不可能以某种方式拥有两个单独的用户模型(例如BizUserCliUser),因为Django和其他第三方应用程序中的所有代码都希望有一个用户模型并赢得不能使用多种模型。