我正在制作一个AJAX分页模板,显示一个5x5 Dota 2玩家项目背包网格(见截图 - 它是由steam制作的)。
问题是,页面可以有空插槽。
以下代码不会处理它。如果第二个广告位为空(没有Item
的{{1}}字段的值为slot_nb
),则2
对象的值为Item
slot_nb
}它将显示在第一页上,当它应显示在第二页上时(slot_nb索引从25
开始)
0
我基本上想要的是每个页面都要呈现def get_pagination_page(page=1):
items = Items.objects.all()
paginator = Paginator(items, 25) # 25 items per page
try:
page = int(page)
except ValueError:
page = 1
try:
items = paginator.page(page)
except (EmptyPage, InvalidPage):
items = paginator.page(paginator.num_pages)
return items
(Item.objects.filter(slot_nb=range(((page_nb*25)-25)), ((page_nb*25)-1))
从1开始)
有可能实现这样的目标吗?
答案 0 :(得分:0)
Paginator实际上执行切片操作。
# paginator.py
...
return Page(self.object_list[bottom:top], number, self)
所以你要做的就是按Items
slot_nb
排序
items = Items.objects.all().order_by('slot_nb')