Я пытаюсь найти эффективный способ найти ранг объекта в базе данных, связанный с его оценкой.Мое наивное решение выглядит так:
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 ('score') .filter (name =' search_for_this ')
Но, похоже, нет способа извлечь индекс для шага order_by после фильтра.
Есть ли лучший способсделать это?(Использование python / django и / или необработанного SQL.)
Моя следующая мысль - предварительно вычислить ранги при вставке, но это выглядит грязно.