I'm using DRF. How can I get hierarchical JSON by django ORM? what the query should look like?
CategoryModel.objects.filter(active=True).select_related() or prefetch_related()?
I have model that looks like this:
class Category(models.Model):
parent = models.ForeignKey('self', on_delete=models.SET_NULL, blank=True, null=True)
name = models.CharField(max_length=100)
slug = models.SlugField(unique=True, default='', blank=True)
active = models.BooleanField(default=True)
serializers:
class ParentCategorySerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = '__all__'
class CategoryListSerializer(serializers.ModelSerializer):
class Meta:
model = Category
fields = ['name', 'slug', 'parent']
parent = ParentCategorySerializer(many=True)
I want to get something like this (greater depth possible):
{
"name": "First category",
"slug": "first-category",
"subcategories": [
{
"name": "First subcategory one",
"slug": "first-subcategory-one",
"subcategories": null
},
{
"name": "First subcategory two",
"slug": "first-subcategory-two",
"subcategories": null
},
]
},
{
"name": "Second category",
"slug": "second-category",
"subcategories": []
}