例如,假设我有一个名为“ClassRoom”的模型和一个名为“Student”的模型,Student与ClassRoom具有外键关系。
Class Student(models.Model):
classroom = models.ForeignKey(ClassRoom, related_name='student')
如何使用基本的Django查询查找哪个课堂中的学生人数最多。我做了什么来找到答案似乎应该更容易。
max = 0
for c in ClassRoom.objects.all():
if c.student.count() > max:
print 'ID: %s' % c.id
max = c.student.count()
然后我会打印最后一个ID并对课堂ID进行.get()查询。无论如何使用注释或聚合来执行此操作?
答案 0 :(得分:0)
尝试向ClassRoom
对象添加类似内容:
def num_students(self):
return Students.objects.filter(classroom=self).count()
显然用您所谓的任何内容替换classroom
。然后,您应该能够使用__max
查询。
免责声明:我没有尝试过这个,但它在我脑海中起作用:)