将相关对象放入单个查询集中?

问题描述 投票:0回答:1

我有3个模型。 ModuleTaskLessonLesson通过FK与Module相关。任务通过FK连接到Lesson。我正在尝试在特定模块的单个查询集中获得所有课程和任务。

class Module(models.Model):
    name = models.CharField(max_length=255)

class Lesson(models.Model):
    name = models.CharField(max_length=255)
    module = models.ForeignKey('module', on_delete=models.CASCADE)

class Task(models.Model):
    name = models.CharField(max_length=255)
    lesson = models.ForeignKey('lesson', on_delete=models.CASCADE)

我想在一个查询集中将所有相关的课程和模块相关的任务。

这是我尝试过的

module = Module.objects.get(id=57)
lessons = Lesson.objects.filter(module=module)
tasks = Task.objects.filter(lesson__id__in=[lesson.id for lesson in lessons])
django django-orm
1个回答
0
投票

[好,所以我经历了documentation,显然我不需要创建一个单独的对象来保存课程和所有任务,因为lessons = Lesson.objects.filter(module=module)已经具有tasks,可以用类似的东西来访问它

© www.soinside.com 2019 - 2024. All rights reserved.