2014-01-21 2 views
0

Обычно я обычно избегаю давать такие явные примеры, но в этом случае это необходимо.Как получить обратную связь в ORM Django

У меня есть 5 объектов:

  1. Student
  2. Группа
  3. StudentGroup
  4. CourseGroup
  5. курс (не имеет значения - только для полноты картины цели)

StudentGroup представляет студенты, которые являются частью вверх. CourseGroup это конечно, вся группа принимает участие.

Я хочу, чтобы все студенты, которые являются частью Group и принимающих участие в конкретном Course. До сих пор мне удалось только получить все студент в группе:

students = Student.objects.filter(studentgroup=1) 

Не знаю, почему я могу сказать studentgroup=1 но это повезло. Однако нет studentgroupcourse=1 :) Любая помощь?

Edit: Мои модели: http://pastebin.com/07z1iEcw

+0

Для справки, я видел это: HTTP://stackoverflow.com/questions/5212463/django-follow-relations-backwards, но это не похоже на то, как это применимо ко мне. Возможно, я ошибаюсь. –

+0

Пожалуйста, разместите свои определения моделей, и если это невозможно, по крайней мере, опубликуйте типы отношений (ForeignKey, ManyToMany) между каждой моделью в вашем списке – dm03514

+0

@ dm03514 обновленный вопрос с моими моделями. Я считаю, что я адаптировал свой ответ к тому, что мне нужно: 'studentgroup__group__coursegroup__course'. Не знал, что вы можете пройти через отношения с двумя подчеркиваниями. Примите ваш ответ за это. Благодарю. –

ответ

2

CourseGroup имеет предположение с собой ForeignKey к StudentGroup и ForeignKey к Course

Student.objects.filter(studentgroup=1, studentgroup__coursegroup__course=your_course)

Смежные вопросы