3
次のM2Mシナリオを考えてみましょう。Djangoモデル - QuerySetを使用してM2Mシナリオで両方のFKで自己結合
私は、任意の学生のすべての同僚とそれらの両方のコースに参加する数を取得したい。
class Student(models.Model):
pass
class Course(models.Model):
students = models.ManyToManyField(Student, through='Attendance')
class Attendance(models.Model):
student = models.ForeignKey(Student)
course = models.ForeignKey(Course)
クエリは、この
SELECT
S.id AS student_id,
A2.student_id AS colleague_id,
COUNT(A2.course_id) AS number_of_courses_both_of_them_attend
FROM student S
JOIN attendance A1
ON S.id = A1.student_id
JOIN attendance A2
ON (A1.course_id = A2.course_id AND A1.student_id != A2.student_id)
GROUP BY 1, 2
ようになり、私はどのように上の任意のヒントをいただければと思います(与えられた生徒がそれぞれと彼の同僚のいずれかと共通している。どのように多くのコースの意味) QuerySetメソッドを使用してこれを実現します。
ありがとうございます!
この(http://code.djangoproject.com/ticket/8375)私の問題を解決しているだろう。残念ながら、それはいつか/多分状態です。 – ducu