2

我有三个模型

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')

但它不起作用。

4

1 回答 1

1

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

from django.db.models import Count
ModelA.objects.all().values('name').annotate(num_model_c_objects=Count('modelb__modelc'))
于 2014-08-19T12:44:13.010 回答