Как подсчитать количество товаров в категории django
Мне нужно показать, сколько товаров в каждой категории, например, у меня есть 3 товара в категории Телефоны, и я хочу сделать так Phones(3). Я пытался использовать некоторые методы в моделях, но это не работает
def count_products(self):
return Category.objects.all().count()
также пробовал в views.py
context = super().get_context_data(**kwargs)
context['grade_info'] = self.get_ordered_grade_info()
context['category'] = Category.objects.count()
return context
Вы можете использовать функцию annotate
для вычисления данных на уровне базы данных, например:
from django.db.models import Count
catigouris = Category.objects.annotate(
items_count=Count('related_name_to_items')
)
Приведенный выше запрос ORM вернет дополнительный атрибут items_count
, сгруппированный по категориям.