2016-11-30 6 views
0

Alle meine Modelle haben mehrere ManyToMany Beziehungen zu anderen Modellen und sich selbst, und sie alle haben ein „bis“ TischDjango erhalten alle ManyToMany Beziehungen eines Objekts

Lasst uns sagen, ich habe Modell A, die eine ManyToManyField mit Modell hat B und C, wollen wir betrachten auch der Feldname

das gleiche wie das zugehörige Modell ist und ich habe Modell D die A ein ManyToManyField mit Modell hat.

Nun, ich möchte alle Objekte zu einem A Objekt der Klassen Dies ist B, C und D

mit Bezug zu bekommen, was ich versucht habe:

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) 

Tatsächliche Modelle here gefunden werden kann (My Problem ist mit Pessoa und CCir).

Antwort

2

Sie können a.d_set.all() um Beziehung zu erhalten rückwärts oder mit dem Code, den Sie haben zur Verfügung gestellt:

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

Auch könnten Sie related_name

für Ihre m2m Modelle bieten betrachten
Verwandte Themen