在这里:
class Administrator(models.Model):
user = models.OneToOneField(User, primary_key=True)
account = models.ForeignKey(Account)
class Meta:
unique_together = (('account', 'self.user.username'),)
self.user.username
部分显然是不正确的。但是,在以下情况下:
class Administrator(User):
account = models.ForeignKey(Account)
class Meta:
unique_together = (('account', 'username'),)
既然我是从User继承的,这会起作用吗?(我还不能测试它,因为在其他地方有太多不合适的元素)。不过,我可以在'user.username'
上使用第一个版本吗?或者,我应该使用第二个版本吗?
发布于 2010-02-19 16:33:32
它会是
unique_together = (('account', 'user__username'),)
如果我理解你的意图的话。注意双下划线。这就是如何看待外键对象的属性。
发布于 2012-07-31 15:43:31
我不相信你能用django内核做你想做的事情。正如所指出的,in this answer to a related question unique_together是在DB层强制执行的。如果您检查由django模型继承创建的DB表,您将看到这对于DB来说是不可能完成的。
请看一下相关问题,以获得一些替代解决方案。
发布于 2019-02-13 16:08:53
您缺少的是基类中的abstract = True
。这将创建一个包含该子类的所有字段的表。
https://stackoverflow.com/questions/2297800
复制