gpt4 book ai didi

python - 在 Django 中使用空值创建左连接

转载 作者:行者123 更新时间:2023-12-01 01:14:32 26 4
gpt4 key购买 nike

我正在尝试创建一个相当于 SQL LEFT OUTER JOIN 的 Django。不过我在这方面遇到了麻烦。

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

class Grades(models.Model):
grade = models.CharField(max_length=3)
student = models.ForeignKey(Student, on_delete=models.CASCADE)
course = models.ForeignKey(Course, on_delete=models.CASCADE)

我的目标是循环所有类(class),当学生有值(value)(我已经有)时,然后打印出他/她的成绩。这对我来说似乎很容易,但我就是无法弄清楚......

编辑:

更多解释:我只有学生证,这就是我已经拥有的意思。我需要打印表格中的所有类(class)(位于模板中)

所以你会得到:

英语 - 8.0
法语-
德语 - 10

因此在本例中没有设置法语成绩,因此不会显示成绩。

最佳答案

您可以通过将 prefetch_lated 与受限查询集结合使用来实现此目的。

from django.db.models import Prefetch
courses = Course.objects.prefetch_related(
Prefetch('grades_set', queryset=Grade.objects.filter(student=my_student))
)

现在,当您迭代类(class)时,course.grade_set.all() 将仅包含与 my_student 相关的成绩。

关于python - 在 Django 中使用空值创建左连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54484135/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com