Skip to main content
Warning: You are using the test version of PyPI. This is a pre-production deployment of Warehouse. Changes made here affect the production instance of TestPyPI (testpypi.python.org).
Help us improve Python packaging - Donate today!

Want to save the url params and get a format page_range?This package save extra data to django paginator. Useful when url has params.

Project Description

django-paginator-plus ===

Want to save the url params and get a format page_range?

This package save extra data to django paginator. Useful when url has params.

http://myhost/something?page=10&a=1 –> [?page=8&a=1, ?page=9&a=1, ?page=10&a=1, ?page=11&a=1, ?page=12&a=1]

Document —

Paginator — Like django default Paginator, it rewrite page_range, and page.

init params:

all Django Paginator params curr_page – paginator current page num. display_pages – if have 100 page, display_pages will only display the pages in page_range method.

rewrite method or property:

page_range
Default Django Paginator will return 1 to max page. [1..100] Here will use curr_page and display_pages to return the page_range. If max page is 100, display_pages is 5, curr_page is 10, the page_range will be [8, 9, 10, 11, 12]. This is useful when handler front end paginator(or you can use a js lib).
page
In default Django Paginator page is a method. Here page is a property, it use curr_page to return Default Django page.

RequestPaginator — Like Paginator, but in take some extra params to get the querystring page_range.

page_range is like Paginator.page_range, but it not only return a number list. It will has querystring too, like [?page=8&a=1, ?page=9&a=1, ?page=10&a=1, ?page=11&a=1, ?page=12&a=1]. This is useful when handler front end paginator(or you can use a js lib).

Simple Usage —

from django.contrib.auth.models import User from paginator_plus.paginator import Paginator

users = User.objects.all() print len(users) p = Paginator(users, per_page=2, curr_page=10) print p.page_range

p1 = Paginator(users, per_page=2, curr_page=20, display_pages=5) print p1.page_range

from django.http.request import HttpRequest, QueryDict

r = HttpRequest() r.path_info = ‘/questions’ r.GET = QueryDict(‘a=1’)

from paginator_plus.paginator import RequestPaginator rp = RequestPaginator(users, per_page=2, curr_page=20, display_pages=5, request=r) print rp.page_range

rp1 = RequestPaginator(users, per_page=2, curr_page=20000, display_pages=5, request=r) print rp1.page_range

Release History

Release History

This version
History Node

0.1.2

History Node

0.1.1

History Node

0.0.1

Supported By

WebFaction WebFaction Technical Writing Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Heroku Heroku PaaS Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Rackspace Rackspace Cloud Servers DreamHost DreamHost Log Hosting