Ответ
Для подсчета количества записей в QuerySet используется метод .count().
Он выполняет в базе данных оптимизированный SQL-запрос SELECT COUNT(*) и возвращает целочисленное значение, не загружая сами объекты в память.
Пример:
from myapp.models import Product
# Количество всех продуктов
all_products_count = Product.objects.count()
# Количество активных продуктов
active_products_count = Product.objects.filter(is_active=True).count()
count() vs len() — в чем разница?
queryset.count(): Эффективный способ. Выполняет один SQL-запросCOUNT(*)на стороне БД. Идеально для получения только количества.len(queryset): Неэффективный способ. Сначала загружает все объекты из БД в память Python, а затем вычисляет их количество. Это может привести к большому потреблению памяти и медленной работе при большом объеме данных.
Используйте len(queryset) только в том случае, если вы все равно собираетесь итерировать этот QuerySet и вам нужны сами объекты.