나는 그것의 점수와 관련있는 데이타베이스에있는 목표의 계급을 찾아내는 능률적 인 방법을 찾아내는 것을 시도하고있다. 내 순진 솔루션은 다음과 같습니다order_by 후에 목록에서 결과의 위치를 얻으려면 어떻게해야합니까?
rank = 0
for q in Model.objects.all().order_by('score'):
if q.name == 'searching_for_this'
return rank
rank += 1
order_by 사용하여 필터링을 수행 할 데이터베이스를 얻을 수 있어야한다 :..
Model.objects.all() order_by ('점수') 필터를 (name = 'searching_for_this')
그러나 필터 다음에 order_by 단계에 대한 색인을 검색하는 방법은없는 것처럼 보입니다.
더 좋은 방법이 있나요? (Python/django 및/또는 원시 SQL 사용)
다음 생각은 삽입시 순위를 미리 계산하는 것입니다.하지만 그것은 지저분 해 보입니다.
무엇인가 : 그것은 정상적인 필드 것처럼,
그런 다음 사용할 수 있습니다 어디서나 "순위"당신을 귀찮게하지 않는 경우, 나는 모델에서 사용자 정의 메소드를 만들 것 'score = = retrieve_score' -> rank – jfs