2010-02-10 6 views
1

Django에서 이와 비슷한 작업을하려고합니다. 그것은 채점 시스템을 나타내는 차트의Django의 위치도

Pos NickName  Points 
--- ---------  ------ 
1 The best  1000 
... 
35 Roger   550 
36 Anna   545 
37 Paul   540 

, 그것은 첫 번째 위치뿐만 아니라 제시된 선수의 상대 위치를 표시 할 계획이 안나의 페이지의 일부입니다. (안나

best = Score.objects.all().order_by('-points')[0] 

하지만 제시된 플레이어에 가까운 사람을 얻는 문제가 발생 :

에만 데이터베이스에 쿼리를 만들고있다대로, 쉽게 첫 번째를 표시 및 첫 번째 추출 이 경우). 나는 선수들의 전체 목록이 꽤 길 수 있기 때문에 전체 목록을 조사하려고하지 않는다.

은 어쩌면 그것을 달성하는 방법에 대한

어떤 아이디어 ... 레지스터가 정렬 된 목록에서 차지하는 위치를 알 수있는 방법이?

답변

2

points이 더 높은 레코드 중 COUNT()을 가져옵니다.

+0

위대한 솔루션, 감사합니다! – Khelben

+0

그건 그렇고, 그것은 호기심 문제가 있습니다. 동일한 수의 포인트가있는 위치가 2 개있는 경우 결과는 매번 달라질 것입니다 (적어도 장황한 MySQL을 통해 장황 할 수 있습니다). 마지막으로, 일관성을 유지하고 랭킹에서의 이상한 움직임을 피하기 위해 (예를 들어, 포인트에 의해, 그리고 나서 이름으로) 완전한 정렬을해야했습니다 ... – Khelben