Как получить доступ ко всем дочерним элементам для 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, содержащий все задачи.