Я пытаюсь получить иерархическую группу в категориях, используя только один или максимум два набора запросов django. Я получил Django эту модель:
from django.db import models
class Category(models.Model):
level = models.CharField(max_length=10)
name = models.CharField(max_length=45)
parent = models.ForeignKey('Category')
, и это набор запросов, который я получил:
categories = Category.objects.all().order_by("parent").order_by("level").values()
Я пытаюсь сделать это:
[
{
"id": 1,
"name": "Tecnología",
"level": "l1",
"parent_id": null,
"child":[
{
"id": 3,
"name": "Computación Lorem",
"level": "l2",
"parent_id": 1,
"child":[
{
"id": 5,
"name": "Portatiles",
"level": "l3",
"parent_id": 3
}
]
}
]
}
]
Я знаю, что у этого json новый ярлык («ребенок»). Я не могу это создать, поэтому мне нужен способ как можно ближе к верхнему. Но вот что у меня есть:
[
{
"id": 1,
"level": "l1",
"name": "Tecnología",
"parent_id": null,
},
{
"id": 3,
"level": "l2",
"name": "Computación Lorem",
"parent_id": 1,
},
{
"id": 5,
"level": "l3",
"name": "Portatiles",
"parent_id": 3,
}
]
Не могли бы вы, народ, протянуть мне дружескую руку, пожалуйста? Я очень это оценю.