Группировка по категориям в DRF
Я пытаюсь сделать что-то вроде этого вопроса stack overflow:
Но я пытаюсь следовать инструкциям, и у меня ничего не получается.
Вот мое мнение:
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,
...
}
]
},
...
]