如何从Django中的外键关系中的查询集中获取“对象”列表

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

如何从外键关系查询集中获取对象列表? (当你使用“for f in foo:print(x)”循环遍历列表时)

代码如下:

class class Course(models.Model):
    name = models.CharField(max_length=20)
    user = models.ManyToManyField(User, related_name='typecourses')
    description = models.TextField(max_length=500)

class Module(models.Model):                                                         
    name = models.CharField(max_length=20)
    courses = models.ForeignKey(Course, on_delete=models.CASCADE, related_name='courses', null=True)

下面是我在“视图”中尝试过的两个查询,它们都输出与查询集相同的结果。

1/ module_taken = list(Course.objects.get(id=1).courses.all())
2/ module_taken = Module.objects.select_related('courses').all()

结果:

<QuerySet [<Module: Foo>, <Module: Bar>]>

任何帮助将非常感激。

python django python-3.x django-queryset django-2.0
1个回答
1
投票

我想你想要做的是:

course_taken = Course.objects.get(id=1)

现在课程包含id = 1的对象课程

modules_course = course_taken.courses.all()

现在模块课程包含一个查询集,其中所有模块都以course_taken作为其外键,请注意课程只是您在相关名称中输入的名称

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