DJANGO REST framework дерево категорий
У меня есть модель, которая выглядит так:
class Categories(models.Model):
name = models.CharField(max_length=100, unique=True)
parent = models.ForeignKey(
'self', on_delete=models.CASCADE, blank=True, null=True, related_name='children'
)
def __str__(self):
return self.name
sirelializers.py
class FilterCategoriesListSerializer(serializers.ListSerializer):
def to_representation(self, data):
data = data.filter(parent=None)
return super().to_representation(data)
class RecursiveSerializer(serializers.Serializer):
def to_representation(self, value):
serializer = self.parent.parent.__class__(value, context=self.context)
return serializer.data
class CategoriesSerializer(serializers.ModelSerializer):
children = RecursiveSerializer(many=True, read_only=True)
class Meta:
list_serializer_class = FilterCategoriesListSerializer
model = Categories
fields = ("name", "children")
api.py
class CategoriesViewSet(viewsets.ModelViewSet):
queryset = Categories.objects.all()
permission_classes = [
permissions.AllowAny
]
serializer_class = CategoriesSerializer
Не удается отобразить вложенные категории! При создании JSON пример:
{
"name": "Category 1",
"children": [
{
"name": "Category 1.1",
"children": [
{
"name": "Category 1.1.1",
"children": [...]
вот что получается:
[
{
"name": "Category 1",
"children": []
}
]