Django在自定义用户模型的子类中使用unique_together

时间:2013-12-18 15:51:09

标签: python django unique-index

我通过首先扩展抽象扩展了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.

它们也不起作用。

我有什么遗失的吗?

0 个答案:

没有答案