我在一个简单的 django 应用程序中有一个模型,它记录了参加比赛的人的分数。我有两个模型对象,Entry 和 Person。每个条目有一个人,一个人有多个条目。
我想生成一个页面,显示每个用户、他们的总分和他们的排名。
到目前为止我得到的命令如下:
Entry.objects.values('person__name').annotate(total=Sum('score')).order_by('-total')
我可以使用 for 块很好地将结果输出到页面上。我唯一没有得到的是排名。
将记录的数字排名添加到每条记录的最佳方法是什么,包括当两个分数相同时,排名反映了这一点(即“4 =”)这一事实?尝试使用 forblock.counter 和一些前瞻/后向机制在模板中执行此操作会更好,还是尝试将此字段用于查询本身?