Django聚合 - 两个和的总和

时间:2012-04-23 12:34:17

标签: django models django-aggregation

假设我们有以下两个模型:

class Player(Model):
    alliance = ForeignKey("Alliance")
    points = PositiveIntegerField()

class Alliance(Model):
    points = PositiveIntegerField()

每位玩家和每个联盟都有特定数量的积分。总联盟积分为alliance.points + Sum(player_set__points)

我想要做的是获取按总点数排序的所有联盟。 问题是我似乎无法在聚合中进行Sum + Sum。

1 个答案:

答案 0 :(得分:1)

您可以对数据库进行非规范化。在sum上添加字段Alliance,在post_savepost_delete Alliance以及Player上添加更新。因此,您将拥有随时可用的价值并轻松对其进行排序。