如何使用django分页显示对象范围?

时间:2013-04-18 17:49:09

标签: python django dajaxice

我正在制作一个AJAX分页模板,显示一个5x5 Dota 2玩家项目背包网格(见截图 - 它是由steam制作的)。

Dota 2 player backpack

问题是,页面可以有空插槽。

以下代码不会处理它。如果第二个广告位为空(没有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开始)

有可能实现这样的目标吗?

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