Группировка по категориям в DRF

Я пытаюсь сделать что-то вроде этого вопроса stack overflow:

Django RestFramework group by

Но я пытаюсь следовать инструкциям, и у меня ничего не получается.

Вот мое мнение:

class ArticleListView(generics.ListAPIView):
    queryset = Page.objects.select_related().all()
    serializer_class = GroupPageListSerializer
    filter_backends = (filters.DjangoFilterBackend, OrderingFilter)
    pagination_class = LimitOffsetPagination
    ordering_fields = ['date']
    filter_class = ArticleMultiValue

А вот мой сериализатор. Я могу включить и свой сериализатор GroupPageSerializer, но не думаю, что он может быть уместен?

class GroupPageListSerializer(serializers.ModelSerializer):
    image = Base64ImageField(max_length=None, use_url=True)
    category = serializers.PrimaryKeyRelatedField(
        many=True, queryset=Category.objects.all())
    url = serializers.CharField(allow_null=True, required=False, default=None, allow_blank=True)
    english = serializers.CharField(source="base", required=False, allow_blank=True)
    per_language = PerLanguageCondensedSerializer(many=True, required=False, read_only=True)
    foreign = serializers.CharField(required=False, allow_null=True, allow_blank=True)
    base = serializers.CharField(required=False)

    def to_representation(self, data):
        iterable = data.all() if isinstance(data, models.Manager) else data
        return {
            category: super().to_representation(Page.objects.filter(category=category))
            for category in Category.objects.all()
        }

    class Meta:
        model = Page
        fields = ['per_language', 'date','base', 'foreign', 'english', "id", "category", "title", "image", "sound", "url", "slug"]

Как мне получить такой вывод:

[{"CategoryName1":[
       {
        "id": 5,
    ...
        },
        {
        "id": 6,
    ...
        },
        {
        "id": 7,
    ...
        }
    ]
},
...
]
Вернуться на верх