Есть модель:
class Menu(models.Model):
name = models.CharField(max_length=150)
parent = models.ForeignKey(
'self',
on_delete=models.CASCADE,
blank=True,
null=True,
related_name='parent_name')
def __str__(self):
return self.name
Есть следующая функция.
def index(request, name='Magomed'):
menu_item = Menu.objects.raw('''
WITH RECURSIVE menu AS (
SELECT id, parent_id, name
FROM app_menu
WHERE name = %s
UNION
SELECT app_menu.id, app_menu.parent_id, app_menu.name
FROM app_menu
JOIN menu
ON app_menu.parent_id = menu.id OR app_menu.id = menu.parent_id)
SELECT * FROM menu;''', [name])
Как иерархически вывести данные с полученного query? То есть, чтобы id == parent_id.
Через template tag это как то сделать, через цикл в список добавлять или в самом SQL это можно реализовать?