Список всех групп и родительской группы экземпляра

У меня есть модель Group, которая имеет внешний ключ к самой себе (поэтому у группы может быть родительская группа).
У нее также есть m2m к Establishment.

class Group(AbstractBusiness):
    parent = models.ForeignKey(
        'self', on_delete=models.CASCADE, blank=True, null=True, related_name='children'
    )
    establishments = models.ManyToManyField(Establishment, related_name='groups', blank=True)

Я хотел бы иметь список, содержащий все идентификаторы групп, связанных с учреждениями + идентификатор родительской группы этих групп и далее, если они продолжают иметь идентификатор родителя (если это имеет смысл).

Я пробовал нечто подобное, перезаписывая мой начальный цикл for, но это не работает.

groups = models.Establishment.objects.get(number=establishment_id).groups.all()
group_ids = []
for group in groups:
    group_ids.append(group.id)
    if group.parent:
        groups = list(chain(groups, models.Group.objects.filter(id=group.parent.id)))

У вас есть какие-нибудь подсказки?

Вернуться на верх