Как просто получить доступ к количеству продуктов через другую модель, которые связаны внешним ключом
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