Meine Django Modelle sieht aus wieMit Django ORM Abfrage Wie man mit Anmerkungen versehen, wenn mehrere Ebenen von Fremdschlüssel Hierarchie existiert
class Parent(models.Model):
name = models.CharField(('name'), max_length=30)
class Child(models.Model):
parent = models.ForeignKey(Parent)
name = models.CharField(('name'), max_length=30)
class GrandChild(models.Model):
child = models.ForeignKey(Child)
name = models.CharField(('name'), max_length=30)
-> To Get Number of Childs for parent following query does
Parent.objects.annotate(childs=Count('Child')).values('childs')
-> To Get Number of Grand Childs for parent following query does
Parent.objects.annotate(childs=Count('child')).annotate(grandchilds=Count('child__grandchild'))
Aber wie kann ich die Anzahl der Kinderanzahl und die Anzahl der großen Kindes für jeden Elternteil erhalten
Diese Art von Dingen wird mit Rekursion gelöst, zum Beispiel machen Sie eine get_children-Methode, die über jedes Kind iteriert und ihre get_children aufruft, bis keine Anrufe mehr anstehen. –