Skip to main content
 首页 » 编程设计

python之我如何在 Django 中进行此查询 (聚合/注释)

2024年08月25日24EasonJim

这是我的 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'))