小编Bob*_*Bob的帖子

如何在order_by之后获取结果在列表中的位置?

我正在尝试找到一种有效的方法来查找数据库中与其得分相关的对象的等级.我天真的解决方案看起来像这样:

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.)

我的下一个想法是在插入时预先计算排名,但这看起来很混乱.

python sql django rank

7
推荐指数
2
解决办法
2659
查看次数

标签 统计

django ×1

python ×1

rank ×1

sql ×1