我有一个查询根据特定字段对表进行排序。该表与一个竞赛相关,因此了解职位非常重要。
由于表可以增长到有很多行,我使用通用视图对它进行分页(每页25行),但我遇到的问题是在表上显示编号的位置。此信息使用order_by
子句生成。
Result.objects.all().order_by('field')
由于我使用通用视图来轻松分页,我没有任何允许我调整结果的视图功能,例如使用enumerate
起初,我想过使用forloop.counter
枚举没有桌子的位置,但当然是当你提交第100页的时候,你仍然会得到1,2,3的数字,4,5 ...... 25,而不是2500,2501,2502 ......
我已经看到了annotate()
方法,看看我是否可以在每个结果中添加它占据总数的位置,但似乎它只添加像man这样的统计数据等等......
有没有办法在查询的每个结果中添加它占据的位置?
答案 0 :(得分:3)
如果您在模板中,可以使用以下内容:
{{ forloop.counter0|add:page.start_index }}
分页页面对象上的start_index
为您提供该页面的基于1的起始索引。当然,反过来可能更具可读性......
{{ page.start_index|add:forloop.counter0 }}
答案 1 :(得分:0)
如果不是要识别前端的行,为什么不使用当前表的主键?