说我有以下models.py:
from django.db import models
class Teacher(models.Model):
name = models.CharField()
class Student(models.Model):
name = models.CharField()
absent = models.BooleanField(default=False)
teacher = models.ForeignKey('Teacher',related_name='students')
如果我想查找至少一名缺席学生的教师名单,我可以执行以下操作:
Teacher.objects.filter(students__absent=True)
我的问题是,我如何提出一份教师名单,其中所有的学生缺席,排除了根本没有学生的教师?甚至可以通过ORM实现这一点而不必放入SQL?
答案 0 :(得分:2)
你可以这样做:
Teacher.objects.exclude(Q(students__absent=False) | Q(students=None))
这将排除所有至少有一名非缺席学生或根本没有学生的教师。