2013-12-10 44 views
1

採取下列模式:Django的獨特關係不是唯一的表

class Foo(models.Model): 
    bar = models.ForeignKey(Bar) 
    name = models.CharField(max_length=30) 
    #... 

所以這樣做是一個Foo模型連接到Bar模型,每個模型Fooname

我該如何使它的名稱是唯一的關於連接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",...) 
+2

爲該字段添加自己的驗證? – yuvi

回答