Подсчитать количество элементов в наборе объектов - PullRequest
2 голосов
/ 31 января 2020

У меня есть вопрос о том, как получить число объектов после двух взаимосвязей между внешними ключами в качестве аннотации 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..

Пакет имеет набор задач. Задача объекта создается, когда соответствующая задача выполнена.

Я могу получить количество Вопросов для каждого опроса, выполнив следующее:

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

Как получить количество Задач в TaskList имеет? Я пытался сделать

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

, но это не сработало.

Кажется, в документации по 1011 , касающейся следования отношениям с внешним ключом, ничего не содержится в документации *1017* далее чем один раз, или о способе аннотирования партий.

...