【问题标题】:Nested annotation in DjangoDjango中的嵌套注释
【发布时间】:2014-10-12 12:59:03
【问题描述】:

我有三个模型

class ModelA(models.Model):
    name = CharField(max_length=100)

class ModelB(models.Model):
    modela = ForeignKey(ModelA)

class ModelC(models.Model):
    modelb = ForeignKey(ModelB)

如何打印具有“关联”ModelC 对象数量的所有 ModelA 对象?

输出:

name, num model c objects
======
Some name, 17
Another name, 3

我尝试过像这样从 ModelA 制作查询集:

ModelA.objects.all().values('name').annotate('modelb_set__modela_set')

但它不起作用。

【问题讨论】:

    标签: django django-models django-views django-queryset django-aggregation


    【解决方案1】:

    您应该在此处使用Count 并在您的查询中引用 ModelC

    from django.db.models import Count
    ModelA.objects.all().values('name').annotate(num_model_c_objects=Count('modelb__modelc'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-06-04
      • 2019-03-11
      • 2015-01-27
      • 2011-07-12
      • 2011-10-11
      • 2010-11-22
      • 1970-01-01
      • 2013-08-11
      相关资源
      最近更新 更多