假设我们有以下两个模型:
class Player(Model):
alliance = ForeignKey("Alliance")
points = PositiveIntegerField()
class Alliance(Model):
points = PositiveIntegerField()
每位玩家和每个联盟都有特定数量的积分。总联盟积分为alliance.points + Sum(player_set__points)
。
我想要做的是获取按总点数排序的所有联盟。 问题是我似乎无法在聚合中进行Sum + Sum。
答案 0 :(得分:1)
您可以对数据库进行非规范化。在sum
上添加字段Alliance
,在post_save
和post_delete
Alliance
以及Player
上添加更新。因此,您将拥有随时可用的价值并轻松对其进行排序。