у меня есть следующий 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?
Нет, это исключает всех учителей, у которых есть хотя бы один не учащийся ** ** и ** не имеют учеников вообще. – Leistungsabfall
А, я не думал приближаться к нему с обратной стороны. Благодарю. И, увидев комментарий выше, я думаю, что вы ищете Teacher.objects.exclude (Q (students__absent = False) | Q (students = None)) Но я ценю, что вы показываете мне правильный подход. –
@Leistungsabfall Ты прав, мой плохой. – knbk