2012-04-23 59 views
0

的總和假設我們有以下兩種模式:Django的聚集 - 兩個和

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

class Alliance(Model): 
    points = PositiveIntegerField() 

每個球員,每個聯盟都有點的具體數額。總聯盟點數爲alliance.points + Sum(player_set__points)

我想要做的是獲取總點數量排序的所有聯盟。 問題是我似乎無法在聚合中執行Sum + Sum。

回答

1

您可以使數據庫非標準化。在Alliance上添加字段sum,在post_savepost_deleteAlliancePlayer的更新。因此,您將擁有隨時可用的價值並輕鬆排序。

+0

那麼,玩家的聲望經常變化,因爲我想要在飛行中計算總和。這似乎是不可能的,不是嗎? – aemdy 2012-04-24 10:04:41

+0

不是不可能的,你總是可以擁有原始的sql。但更不優雅。 – ilvar 2012-04-25 04:02:36