采用以下模型:
class Foo(models.Model):
bar = models.ForeignKey(Bar)
name = models.CharField(max_length=30)
#...
所以这样做会将Foo
模型与Bar
模型相关联,并且每个Foo
模型都有name
。
如何才能使其名称仅对连接的Bar
模型具有唯一性?
注意:unique=True
不会工作,因为名称不需要在整个表中都是唯一的,只是在特定的Bar
实例中不能有重复的名称
我们可以说a
和b
是Bar
#the following is allowed
c = Foo(bar = a, name="foobar",...)
d = Foo(bar = b, name="foobar",...)
e = Foo(bar = b, name="barfoo",...)
#the following would not be allowed because
#an instance already exists in `a` with the name "foobar"
f = Foo(bar = a, name="foobar",...)
答案 0 :(得分:3)
也许你谈论这个:https://docs.djangoproject.com/en/dev/ref/models/options/#unique-together
class Meta:
unique_together = (('bar', 'name'),)