Django Group By Model Field - PullRequest
       1

Django Group By Model Field

0 голосов
/ 14 мая 2018

Для этой конкретной модели, и я хочу выполнить запрос и сгруппировать ответ по category.

class Catalog(models.Model):
    id = models.AutoField(primary_key=True)
    item = models.CharField(max_length=512)
    text = models.TextField()
    category = models.CharField(max_length=512)
    book = models.ForeignKey('Book', on_delete=models.CASCADE)

    created = models.DateTimeField(auto_now_add=True)
    modified = models.DateTimeField(auto_now=True)

Я пробовал что-то на стеке, но это не помогло мне достичь того, чего я хотелМожет кто-нибудь помочь направить меня в правильном направлении.

Catalog.objects.values('category').annotate(category_name=Count('category')).filter(book=123)

Сериализатор:

class CatalogSerializer(serializers.ModelSerializer):
    class Meta:
        model = Catalog
        fields = ('id', 'item', 'text', 'category')

Просмотров:

class CatalogViewSet(viewsets.ModelViewSet):

    serializer_class = CatalogSerializer
    permission_classes = [AllowAny]

    def get_queryset(self):
        return Catalog.objects.values('category').annotate(category_name=Count('category')).filter(property=1234)
...