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 с текущими параметрами.
каков ваш подход?