为什么 paginator (分页对象) 无法获取 (没用)

必须要先理解的几个概念

一, Paginator 分页对象 是来自于 d.get_data 函数调用产生的。
二, 一些默认变量的调用,比如 posts, images,其本质上也是 d.get_data 的调用产生的,默认也会自动产生一个 Paginator 对象。
三, h.paginator 是将一个 Paginator 对象转为 HTML 源码的函数,是需要接受一个 Paginator 对象作为参数,虽然多数时候不需要传参数,其前提是当前页面有且只有一个 Paginator 对象。

为什么 paginator(分页对象) 无法获取?

实际上,并不是这个分页对象没有获取,而是获得了一个错误的分页对象。
因为页面内已经产生了不止一个分页对象,而这个现象产生的原因,基本上跟 d.get_data 函数的调用有关。
1, 使用了多个 d.get_data,并且没有传入参数 with_path=False,那么分页对象会混乱。
2,使用了一个或多个 d.get_data,并且没有传入参数 with_path=False,并且也调用了比如 for psot in posts 类似的默认变量 (posts),分页对象也会混乱。

如何区分分页对象的获取?

1,在调用 d.get_data 的时候,如果没有必要产生分页的,则传入参数 with_page=False
2,在调用 d.get_data 的时候,有产生分页的必要性,则传入参数paginator_name='xxx',然后,后续通过 d.get_paginator('xxx') 的方式,获得准备的分页对象。

2017-05-30 22:36
Comments
Write a Comment