Ich versuche, die Hierarchie einer Organisation, z. eine Firma.Anzeige geschichtete Hierarchie von Gruppen
Ich bin mit 2 Modellen:
- Die auth.group von django gegeben
- My own "group_relation" Modell, das wie dieser
-Code aussieht:
class GroupRelation(models.Model):
parent_group = models.ForeignKey(Group,
related_name="parent_group")
child_group = models.ForeignKey(Group,
related_name="child_group")
def __unicode__(self):
return '{0} - {1}'.format(self.parent_group.name, self.child_group.name)
Also was ich will, ist eine Funktion, die mir eine Liste mit verschachtelten Listen und so weiter zurückgibt.
Beispiel: Firma XY hat 8 Gruppen, die überlagert sind als
1 2
3 4 5 6
7 8
gefolgt, die bedeutet, dass Gruppen 1 und 2 sind die „Kopfgruppen“. 3 und 4 sind Teil der Gruppe 1. 7 ist Teil der Gruppe 3. 5 und 6 sind Teil der Gruppe 2. 8 ist Teil der Gruppe 5.
Nun, was ich zurückgegeben werden möchte, ist etwas wie das :
[{'id': 1, 'grps': [{'id': 3, 'grps': [{'id': 7, 'grps':[]} ]}, {'id': 4, 'grps': []} ]},
{'id': 2, 'grps': [{'id': 5, 'grps': [{'id': 8, 'grps': []}] }, {'id': 6, 'grps': []} ]} ]
Vielen Dank im Voraus.
von der Spitze meines Kopfes nur recurse auf 'instance._meta.get_all_related_objects()', die die Fremdschlüssel Beziehungen bauen bekommen was Sie wollen. – Pythonista