2012-04-23 15 views
0

の合計は、我々は、次の二つのモデルを持っていると仮定しましょう:ジャンゴ・アグリゲーション - 2つの合計

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

class Alliance(Model): 
    points = PositiveIntegerField() 

すべてのプレイヤーとすべての同盟関係は点の具体的な金額を持っています。合計提携ポイントは、alliance.points + Sum(player_set__points)です。

私がしたいことは、合計点数で注文されたすべてのアライアンスを取得することです。 問題は集計でSum + Sumを行うことができないようです。

答えて

1

DBを非正規化することができます。 Allianceにフィールドsumを追加し、post_savepost_deleteのフィールドをAlliancePlayerに更新します。したがって、すぐに使える価値があり、簡単に並べ替えることができます。

+0

さて、プレイヤーの威信は非常に頻繁に変わります。そのため、その場で合計を計算したいのです。それは不可能なようですね。 – aemdy

+0

不可能ではない、あなたはいつも生のSQLを持つことができます。しかし、はるかにエレガントです。 – ilvar

関連する問題