我有3个模型。 Module
,Task
和Lesson
。 Lesson
通过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])
[好,所以我经历了documentation,显然我不需要创建一个单独的对象来保存课程和所有任务,因为lessons = Lesson.objects.filter(module=module)
已经具有tasks
,可以用类似的东西来访问它