0
組織の階層を表示しようとしています。会社。グループの階層構造を表示する
私は2つのモデルを使用しています:
- この
コードのように見える
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)
私がしたいことは、ネストされたリストなどのリストを返す関数です。
例: 会社XYグループ1及び2は、「頭部基」であることを意味する
1 2
3 4 5 6
7 8
を以下のように積層された8つのグループを有しています。 3および4は、グループ1の一部である.7は、グループ3の一部である.5および6は、グループ2の一部である.8は、グループ5の一部である。
ここで返されたいものは、 :
[{'id': 1, 'grps': [{'id': 3, 'grps': [{'id': 7, 'grps':[]} ]}, {'id': 4, 'grps': []} ]},
{'id': 2, 'grps': [{'id': 5, 'grps': [{'id': 8, 'grps': []}] }, {'id': 6, 'grps': []} ]} ]
ありがとうございます。
私の頭の頂上にある 'instance._meta.get_all_related_objects()'にはちょうど再帰があります。これはあなたが望むものを構築する外部キーの関係を取得します。 – Pythonista