0

我首先通过扩展抽象来扩展 Django 的用户类:

class XUserAbstract(AbstractBaseUser, PermissionsMixin):
     email = models.EmailField(
          db_index=True,
          verbose_name='email address',
          max_length=255
     )    
     # ...
     class Meta:
     verbose_name = "User"
     verbose_name_plural = "Users"
     abstract = True

然后,我通过以下方式从这个抽象中创建了一个子类:

class XUser(XUserAbstract):

    class Meta(XUserAbstract.Meta):
    swappable = 'AUTH_USER_MODEL'

在我拥有自己的用户类之后,我从中创建了一个子类并创建了一个 FK 到 Application 模型:

class Merchant(XUser):
    app = models.ForeignKey(Application)
    # ...
    class Meta:
        verbose_name = _('merchant')

问题是当我想在 Merchant 中创建一个独特的配对时,我无法做到。我想用 Merchant.app 和 XUser.email 创建一个独特的对我寻找答案,但解决方案没有解决我的问题,因为我也从它的抽象(?)继承了 User 类。为我找到的子类添加唯一对的解决方案是:

unique_together = ('app', 'user__email')

但它不起作用。错误:

main.business: "unique_together" refers to user__email, a field that doesn't exist.

我也试过了:

    unique_together = ('app', 'xuser__email')
    unique_together = ('app', 'email')

第二行给出了这个错误:

main.business: "unique_together" refers to email. This is not in the same model as the unique_together statement.

他们也不工作。

有什么我想念的吗?

4

0 回答 0