我有很多关系,需要在Django以及另一个列中计算,例如......
Student:
ID
Name
Lessons
Lesson:
ID
Name
Date
Type
Students
所以现在一个学生上了很多课,一节课上有很多学生,如果我要做一个查询,它会告诉我:
按月计算,该月内所有课程的学生总数是多少,并按课程类型划分。
所以它会说:
January:
Maths: 3 lessons, 20 students
English 3 lessons, 30 students
到目前为止,这就是我所拥有的
l = Lessons.objects.extra({'month':truncate_date})
l = l.values('lesson_type', 'month'
).order_by(
).annotate(Count('lesson_type')
).order_by('lesson_date'
).annotate(students=Count('students'))
问题是“当我只计算课程数量时,我得到正确的价值”,但“当我计算两者时,学生数量和课程数量是相同的”,因为加入。有没有办法让子查询计算第二列?
更好的例子:
January:
Lesson 1:
Type: Math
Students: 10
Lesson 2:
Type: Math
Students: 3
Lesson 3:
Type: Math
Students: 7
Lesson 4:
Type: English
Students: 13
Lesson 5:
Type: English
Students: 7
February:
Lesson 1:
Type: Math
Students: 10
Lesson 2:
Type: Math
Students: 3
Lesson 3:
Type: English
Students: 7
Lesson 4:
Type: English
Students: 13
Lesson 5:
Type: English
Students: 7
所以输出应该是
January:
Maths: 3 lessons, 20 students
English: 2 lessons, 20 students
February:
Maths: 2 lessons, 13 students
English: 3 lessons, 27 students
我只是想指出输出只是一个例子,我不需要那样,只需要提供这些信息。