我正在尝试找到一种有效的方法来查找数据库中与其得分相关的对象的等级.我天真的解决方案看起来像这样:
rank = 0
for q in Model.objects.all().order_by('score'):
if q.name == 'searching_for_this'
return rank
rank += 1
Run Code Online (Sandbox Code Playgroud)
应该可以使用order_by让数据库进行过滤:
Model.objects.all().ORDER_BY( '得分').过滤器(名称= 'searching_for_this')
但似乎没有办法在过滤器之后检索order_by步骤的索引.
有一个更好的方法吗?(使用python/django和/或原始SQL.)
我的下一个想法是在插入时预先计算排名,但这看起来很混乱.