採取下列模式:Django的獨特關係不是唯一的表
class Foo(models.Model):
bar = models.ForeignKey(Bar)
name = models.CharField(max_length=30)
#...
所以這樣做是一個Foo
模型連接到Bar
模型,每個模型Foo
有name
。
我該如何使它的名稱是唯一的關於連接Bar
模型?
注:unique=True
不會工作,因爲這個名字並不需要是在整個表中是唯一的,它只是有不能在特定Bar
實例
例如重名:
可以說,的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",...)
爲該字段添加自己的驗證? – yuvi