Python中django-pure-pagination如何设置只显示一页数字

'PAGE_RANGE_DISPLAYED': 1, 'MARGIN_PAGES_DISPLAYED': 1,

设置成 1 也显示两页,设置成 0,报 list index out of range 这个错误

Python中django-pure-pagination如何设置只显示一页数字
2 回复

这个问题挺常见的,django-pure-pagination 默认会显示多个页码数字,要让它只显示一页数字,其实就是控制分页条里页码链接的数量。

关键在 Pagination 对象的 display 参数。你需要在视图里创建分页对象时,把 display 设为 1。这样它渲染出来的分页条就只会显示当前页这一个页码了。

给你个视图里的代码例子:

from pure_pagination import Paginator, Page

def my_view(request):
    object_list = MyModel.objects.all() # 你的数据
    try:
        page = request.GET.get('page', 1)
    except PageNotAnInteger:
        page = 1

    p = Paginator(object_list, per_page=10, request=request) # 每页10条
    # 关键在这里:display=1
    paginated_page = p.page(page, display=1)

    return render(request, 'template.html', {'page_obj': paginated_page})

然后在模板里,用 page_obj 渲染分页导航就行,它会根据上面的设置只生成一个页码链接。

总结:设置 display=1 就能只显示一页数字。


回到顶部