У меня есть модели с иерархическими отношениями:
class School(models.Model):
name = models.CharField()
class Class(models.Model):
school = models.ForeignKey(School)
class Student(models.Model):
class = models.ForeignKey(Class)
И я бы хотел получить каждые Student
объекты, связанные с определенным School
.
. Обычно я делал это, как показано ниже:
the_school = School.objects.get(name='Springfield Elementary School')
students = Student.objects.filter(class__school=the_school)
Но для этого метода нужны две модели для поиска (School
и Student
), что кажется несколько ненужным ... Для меня.
Поэтому я попытался сделать однострочный запрос, используя Django'sвстроенный связанный менеджер:
students = School.objects.get(name='...').class_set.student_set.all()
# or
students = School.objects.get(name='...').class_set.all().student_set.all()
... который не работал.
Как мне сделать запрос, ссылающийся на данный School
объект?
Или естьлучшее решение?