Django聚合-两个和的和
假设我们有以下两种模型:Django聚合-两个和的和,django,models,django-aggregation,Django,Models,Django Aggregation,假设我们有以下两种模型: class Player(Model): alliance = ForeignKey("Alliance") points = PositiveIntegerField() class Alliance(Model): points = PositiveIntegerField() 每个玩家和每个联盟都有特定数量的积分。联盟总积分为计数alliance.points+Sum(玩家积分) 我想做的是获取所有按总点数排序的联盟。 问题是我似乎无法
class Player(Model):
alliance = ForeignKey("Alliance")
points = PositiveIntegerField()
class Alliance(Model):
points = PositiveIntegerField()
每个玩家和每个联盟都有特定数量的积分。联盟总积分为计数alliance.points+Sum(玩家积分)
我想做的是获取所有按总点数排序的联盟。
问题是我似乎无法在聚合中执行Sum+Sum。您可以对数据库进行反规范化。在
联盟
上添加一个字段sum
,在联盟
和玩家
的post\u save
和post\u delete
上更新该字段。因此,您可以轻松地使用值并对其进行排序。好吧,玩家的声望经常会发生变化,因此我想动态计算总和。这似乎是不可能的,不是吗?不是不可能的,您总是可以使用原始sql。但却不那么优雅。