2016-11-30 115 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