Как получить доступ ко всем дочерним элементам для Django QuerySet

У меня есть следующие модели, где проект имеет много целей, а цель имеет много задач.

Какой лучший способ найти набор запросов, содержащий все задачи, относящиеся к отдельному проекту?

models.py приведены ниже:

class IndividualProject(models.Model):
    project = models.CharField(
        max_length = 64
        )

    def __str__(self):
        return f"Project {self.project}"

class IndividualGoal(models.Model):
    goal = models.CharField(
        max_length = 64
        )

    project = models.ForeignKey(
        IndividualProject,
        on_delete=models.CASCADE,
        related_name="projects",
        blank=True,
        null=True,        
    )

    def __str__(self):
        return f"{self.goal}"

class IndividualTask(models.Model):
    task = models.CharField( 
        max_length = 256,
        blank=False,
        null=True,
        )

    goal = models.ForeignKey(
        IndividualGoal,
        on_delete=models.CASCADE,
        related_name="goals",
        blank=False,
        null=True,
    )

Я пробовал использовать _set, но безуспешно.

Я хотел бы использовать запрос, в котором я выбираю проект, а затем выбираю конкретную задачу.

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

project = IndividualProject.objects.get(project='name_of_project')

Затем вы можете получить все задачи, связанные с этим проектом, через цель, используя:-

tasks = IndividualTask.objects.filter(goal__project=project)

Это должно дать вам Queryset, содержащий все задачи.

Вернуться на верх