Django分页...切片页面显示总页数的一小部分?

Ben*_*Ben 15 django django-pagination

我的分页模块大部分都在工作,但是有一个问题.我怎样才能显示总可用页面的一部分.例如,假设我在n页的第5页上,我想展示.

1,2,3,4,5,6 ....(N-1)(N).

我相信Ruby有一些花哨的前端魔术来实现这一目标.在django模块中我能做些什么吗?

从其他网站看,似乎逻辑基本上是,选择固定数量的点.如果该数字大于当前显示的数量,请在用户向前翻页时添加项目.达到该点数后,仅在当前页面的左侧和右侧显示x个点.

我应该编写自己的模板逻辑来实现这一目标吗?

谢谢

DTi*_*ing 11

很多关于在django中实现你要求的好文章.如果您不想自己动手,可以自定义大量可插拔软件包.

http://www.tummy.com/Community/Articles/django-pagination/

https://github.com/dcramer/django-paging

很好的文档片段包装了内置的paginator:

http://blog.elsdoerfer.name/2008/03/06/yet-another-paginator-digg-style/


Chr*_* W. 7

我刚刚使用Django Snippets"Digg-like Paginator"实现了这一点.

这绝对是你要找的.

只需将代码转储到Python模块中digg_paginator.py,然后像这样导入它......

from django.core.paginator import InvalidPage, EmptyPage #, Paginator
from digg_paginator import DiggPaginator as Paginator
Run Code Online (Sandbox Code Playgroud)

然后在我的模板中,我不得不从...切换

{% for page_num in page.paginator.page_range %}
Run Code Online (Sandbox Code Playgroud)

{% for page_num in page.page_range %}
Run Code Online (Sandbox Code Playgroud)

而已!它DiggPaginator具有与Django内置完全相同的界面以及一些功能,因此您可以将其放置到位,然后根据需要调整一些自定义.