【发布时间】:2010-02-10 10:25:17
【问题描述】:
我有一个根据特定字段对表进行排序的查询。该表与一项比赛相关,因此了解位置很重要。
由于表格可以增长到有很多行,我已经使用通用视图对其进行了分页(每页 25 行),但我遇到的问题是在表格上显示编号位置。此信息是使用order_by 子句生成的。
Result.objects.all().order_by('field')
由于我使用通用视图来轻松进行分页,因此我没有任何视图功能可以让我调整结果,例如使用enumerate
起初,我想用forloop.counter 来枚举没有表格的位置,但当然问题是,当你展示第 100 页时,你仍然会得到数字为 1,2,3,4 ,5...25,而不是 2500、2501、2502...
我见过annotate()方法,看看我是否可以将它在总数中所占的位置添加到每个结果中,但似乎它只添加了诸如男人之类的统计数据......
有没有什么方法可以在查询的每个结果中添加它所占据的位置?
【问题讨论】:
-
当您能够在通用视图模板中获取页码时,您可以将其与 forloop.counter 一起使用来计算正确的位置。如果您每页有 25 个结果,并且您想计算第二页的值,您只需使用:forloop.counter + (pagenumber - 1) * 25