Django фильтр с агрегированием данных по многим полям

В моем фронтенде есть опция для фильтра, в каждом запросе фильтра, он должен показать, сколько товаров в определенной категории.

Например, вы можете проверить этот сайт, https://www.navingocareer.com/vacatures они показывают, сколько товаров для каждой категории в каждом запросе фильтра, я собираюсь реализовать подобную функцию в моем приложении

Сначала посмотрите мои коды:

это моя models.py

class IndustryType(models.Model):
    name = models.CharField(max_length=200)

class Tags(models.Model):
    name = models.CharField(max_length=200)
    
class Books(models.Model):
    name = models.CharField(max_length=200)
    industry = models.ManyToManyField(
        IndustryType, 
        blank=True, 
    )
    tags = models.ManyToManyField(
        Tags, 
        blank=True, 
    )

и это мой views.py файл

import django_filters

class BookFilterSet(django_filters.FilterSet):
        industry = django_filters.ModelMultipleChoiceFilter(
            field_name='industry',
            queryset=IndustryType.objects.all(),
        )
        tags = django_filters.ModelMultipleChoiceFilter(
            field_name='tags',
            queryset=Tags.objects.all(),
        )
    class Meta:
        model = Books
        fields = [
            'industry',
            'tags'
        ]

class Books(generics.ListAPIView):
    serializer_class = BookDetailsSerializer
    filter_backends = [
        django_filters.rest_framework.DjangoFilterBackend,
    ]
    filter_class = BookFilterSet

    queryset = Books.objects.all()

В настоящее время код работает отлично в соответствии с моими ожиданиями, теперь я пытаюсь реализовать подсчет элементов в каждом запросе на основе текущих параметров запроса, аналогично данному сайту.

У кого-нибудь есть идея, как я могу это сделать?

Как я хочу показать много элементов в for для каждой отрасли с текущими параметрами, сколько элементов для тегов for с текущими параметрами.

каков ваш подход?

Вернуться на верх