2012-04-23 3 views
0

의 합계의 우리는 다음과 같은 두 가지 모델을 가지고 가정 해 봅시다 :장고 집계 - 두 개의 덧셈

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

class Alliance(Model): 
    points = PositiveIntegerField() 

모든 플레이어와 모든 제휴 포인트의 특정 금액을 가지고있다. 총 동맹 포인트는 alliance.points + Sum(player_set__points)입니다.

내가 원하는 것은 총점의 양에 따라 정렬 된 모든 제휴를 가져 오는 것입니다. 문제는 집계에서 Sum + Sum을 수행 할 수없는 것 같습니다.

답변

1

DB를 비정규화할 수 있습니다. Alliancesum 필드를 추가하고 post_savepost_deleteAlliancePlayer으로 업데이트하십시오. 따라서 즉시 사용할 수있는 가치를 얻고 쉽게 정렬 할 수 있습니다.

+0

글쎄, 선수의 명성은 매우 자주 바뀌고, 그 때문에 나는 그 순간에 합계를 계산하려고합니다. 그것은 불가능한 것 같습니다. 그렇지 않습니까? – aemdy

+0

불가능하지는 않지만 항상 원시 SQL을 사용할 수 있습니다. 그러나 훨씬 덜 우아합니다. – ilvar

관련 문제