2016-11-30 111 views
0

我所有的車型與其他車型和自己的幾個多對多的關係,他們都有一個「穿越」表Django的獲取對象的所有多對多關係

比方說,我有模型A,具有與模型ManyToManyFieldBC,讓我們也考慮的字段名稱相同的相關模型

而且我有了與模型A一個ManyToManyField模型D。現在

,我想涉及到的類BCD

這一個A對象的所有對象是什麼,我都試過:

a1 = A.objects.get(pk = 1) 
#Get all B objects related to A 
a1.b.all() 
#Get all C objects related to A 
a1.c.all() 
#Get all D objects related to A but from D class because that's where the field is 
#Raises error 'ManyToManyDescriptor' object has no attribute 'all' 
D.a.all(pk=1) 

實際模型可以發現here(我問題與佩索阿和CCir)。

回答

2

可以爲了獲取反向關係使用a.d_set.all(),或與代碼您提供:

obj = Pessoa.objects.get(pk=1) # get the object 
obj.ccir_set.all() 

你也可以考慮爲您的M2M模型

提供 related_name