所以我的models.py
中有这些类:
class Result(models.Models):
student = models.OneToOneField(Student, on_delete=models.CASCADE)
passed = models.BooleanField(blank=False, default=False)
class Student(models.Models):
name = models.CharField(max_length=25, blank=False)
所以我需要以这样一种方式过滤Student
,使Student.objects.filter()
返回的值为:如果一个Student
映射到一个Result
并且该Result
passed = False
那么它将返回该对象,即使它没有映射到Result
,我仍然需要获取该Student
(因为并非所有学生都有Result
(。
可以使用相关访问器过滤和 Q 对象 在您的情况下:
from django.db.models import Q
Student.objects.filter(Q(result__passed=False) | Q(result__isnull=True))