计算一组对象中元素的数量

时间:2020-01-30 23:36:52

标签: python django django-queryset

我有一个问题,关于在遵循2个外键关系之后获取对象的数量,作为QuerySet的注释。

假设我有以下模型:

class TaskList(models.Model):
    name = models.CharField(max_length=64)

class Batch(models.Model):
    task_list = models.ForeignKey(TaskList)
    length = models.IntegerField()
    done = models.BooleanField(default=False)

class Task(models.Model):
    batch = models.ForeignKey(Batch)
    task_name = models.CharField(max_length=32)
    # some more fields..

批处理具有一组任务。完成相应任务后,将创建对象Task。

我可以通过以下操作获得每次民意测验的问题数:

TaskList.objects.all().annotate(total_tasks=Sum('batch_set__length'))

如何获取TaskList的任务数?我尝试做

TaskList.objects.all().annotate(total_tasks=Count('batch_set__task_set'))

但是没有用。

the documentation on annotations中似乎没有什么关于多次跟踪外键关系或批处理批注的方法。

0 个答案:

没有答案