这是我的 models.py 的一部分:
class College(models.Model):
name = models.CharField(max_length=100)
class MyUser(models.Model):
user = models.OneToOneField(User)
points = models.IntegerField(default=0)
college = models.ForeignKey(College, blank=True,null=True,default=None)
正如你所看到的,一个用户有一些积分,很多用户都会成为一个学院的一部分。 现在,一个学院的积分等于该学院所有学生的积分之和。那么,我如何将学院列表发送到我的模板,并获得他们各自的积分? p>
(我要创建一个所有高校的排名页面)
请您参考如下方法:
这是一个非常标准的聚合查询。
from django.db.models import Sum
colleges = College.objects.all().annotate(total_points=Sum('myuser__points'))
