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)会解决我的问题。不幸的是它处于Someday/Maybe状态。 – ducu 2009-07-20 06:02:09