0

我有两个模型。

class Category(models.Model):
    name = models.CharField()

   @property
   def element_count()
      return Element.objects.filter(name=self.name).count()


class Element(models.Model):
   name = models.CharField()
   categories = models.ManyToManyField(Category)

我想计算与该类别相关的每个元素的数量。此功能适用于模板和视图,但有什么方法可以直接进入查询集中?

如果这样做Category.objects.all()

4

1 回答 1

3

尝试这个:

>>> from django.db.models import Count
>>> q = Category.objects.all().annotate(element_count = Count('element'))

>>> print q[0].element_count
223

文档:https ://docs.djangoproject.com/en/dev/topics/db/aggregation/

于 2013-04-24T10:03:43.237 回答