我有一个问题,关于在遵循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中似乎没有什么关于多次跟踪外键关系或批处理批注的方法。