Как просто получить доступ к количеству продуктов через другую модель, которые связаны внешним ключом

class Category(models.Model):
    category_name = models.CharField(max_length=50, unique=True)
    




class Product(models.Model):
    category        = models.ForeignKey(Category, on_delete=models.CASCADE)
    product_name    = models.CharField(max_length=200, unique=True)
    slug            = models.SlugField(max_length=200, unique=True)

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

cat = Category.objects.all()

запустить цикл для кошки

prod_cat = Product.object.filter(category=cat)

Но я считаю, что это не самый эффективный способ достичь этого

Используя annotate следующим образом:

from django.db.models import Count

>>> categories = Category.objects.annotate(Count('product'))

>>> categories[0].product__count

Полные примеры и понимание здесь: https://able.bio/dfernsby/django-queryset-annotations-with-conditions--19d4cb4b

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