【发布时间】:2021-11-06 11:29:14
【问题描述】:
我是 Django 新手,我想建立一个网站来跟踪棋盘游戏。
我想要什么:对于每一轮比赛,玩家都会获得积分,我想创建一个表格来显示每个玩家所有得分的总和。
我的模型如下:
class Player(models.Model):
name = models.CharField(max_length=150)
class Score(models.Model):
player = models.ForeignKey(Player, blank=False, null=False, on_delete=models.PROTECT)
scorevalue = models.IntegerField(blank=False, null=False)
我想获得一个包含所有玩家的查询集,其中添加了一个包含他的分数总和的附加字段。在 SQL 中类似
Select distinct playername, sum(scorevalue) over (partition by playername)
from Players
Join Scores
我的主要问题是结合实例和查询集来理解“聚合”和“注释”函数之间的联系。
有一个实例我可以得到
Player.objects.get(pk=1).score_set.aggregate(score_sum=Sum('scorevalue'))
但是是否可以对查询集中的每个实例都执行此操作?
感谢您的帮助。
【问题讨论】: