{ "info": { "author": "duoduo369", "author_email": "duoduo3369@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 2.7", "Topic :: Internet" ], "description": "django-paginator-plus\n===\n\nWant to save the url params and get a format page_range?\n\nThis package save extra data to django paginator. Useful when url has params.\n\nIf you want to get page rang like below, then Use RequestPaginator.\n\n Previous 1 ... 2 3 4 5 ... 3000 Next\n Previous 1 2 3 4 5 ... 3000 Next\n 1 2 3 4 5 ... 3000 Next\n\nRequestPaginator will give you a list to deal with you paginator logic.\n\n [{'current': True, 'clickable': False, 'url_params': '/questions?a=1&page=1', 'text': 1}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=2', 'text': 2}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=3', 'text': 3}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=4', 'text': 4}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=5', 'text': 5}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=6', 'text': 6}, {'current': False, 'clickable': False, 'url_params': '', 'text': '...'}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=54', 'text': 54}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=2', 'text': u'Next'}]\n\nInstall\n---\n\n pip install django-paginator-plus\n\nDocument\n---\n\nPaginator\n---\nLike django default Paginator, it rewrite page_range, and page.\n\ninit params:\n\n all Django Paginator params\n curr_page -- paginator current page num.\n display_pages -- if have 100 page, display_pages will only display the pages in page_range method.\n\nrewrite method or property:\n\n page_range\n Default Django Paginator will return 1 to max page. [1..100]\n Here will use curr_page and display_pages to return the page_range.\n If max page is 100, display_pages is 5, curr_page is 10, the\n page_range will be [8, 9, 10, 11, 12].\n This is useful when handler front end paginator(or you can use a js lib).\n\n page\n In default Django Paginator page is a method.\n Here page is a property, it use curr_page to return Default Django page.\n\nRequestPaginator\n---\n\nIf you want to get page rang like, then Use RequestPaginator.\n\n Previous 1 ... 2 3 4 5 ... 3000 Next\n Previous 1 2 3 4 5 ... 3000 Next\n 1 2 3 4 5 ... 3000 Next\n\nLike Paginator, but in take some extra params to get the querystring page_params_range.\n\npage_params_range: will return a list, each element is a dict, has those params:\n\n current: is current page or not\n clickable: can clickable\n url_params: /questions?a=1&page=1\n text: showing text\n\n\n\n [{'current': True, 'clickable': False, 'url_params': '/questions?a=1&page=1', 'text': 1}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=2', 'text': 2}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=3', 'text': 3}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=4', 'text': 4}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=5', 'text': 5}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=6', 'text': 6}, {'current': False, 'clickable': False, 'url_params': '', 'text': '...'}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=54', 'text': 54}, {'current': False, 'clickable': True, 'url_params': '/questions?a=1&page=2', 'text': u'Next'}]\n\nSimple Usage\n---\n\n from django.contrib.auth.models import User\n from paginator_plus.paginator import Paginator\n\n users = User.objects.all()\n print len(users)\n p = Paginator(users, per_page=2, curr_page=10)\n print p.page_range\n print\n\n p1 = Paginator(users, per_page=2, curr_page=20, display_pages=5)\n print p1.page_range\n print\n\n from django.http.request import HttpRequest, QueryDict\n\n r = HttpRequest()\n r.path_info = '/questions'\n r.GET = QueryDict('a=1')\n\n print\n print '========================='\n print\n\n from paginator_plus.paginator import RequestPaginator\n rp = RequestPaginator(users, per_page=2, curr_page=20, display_pages=5, request=r)\n print\n print 'rp = RequestPaginator(users, per_page=2, curr_page=20, display_pages=5, request=r)'\n print rp.page_range\n print rp.page_params_range,\n print\n\n rp1 = RequestPaginator(users, per_page=2, curr_page=20000, display_pages=5, request=r)\n print\n print 'rp1 = RequestPaginator(users, per_page=2, curr_page=20000, display_pages=5, request=r)'\n print rp1.page_range\n print rp.page_params_range,\n print\n\n rp3 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=5, request=r)\n print\n print 'rp3 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=5, request=r)'\n print rp3.page_range\n print rp3.page_params_range,\n print\n\n rp4 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r)\n print\n print 'rp4 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r)'\n print rp4.page_range\n print rp4.page_params_range,\n print\n\n rp5 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r, show_prev=False, show_next=False)\n print\n print 'rp5 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=5, request=r, show_prev=False, show_next=False)'\n print rp5.page_range\n print rp5.page_params_range,\n print\n\n rp6 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=6, request=r, auto_hide_prev=True)\n print\n print 'rp6 = RequestPaginator(users, per_page=2, curr_page=1, display_pages=6, request=r, auto_hide_prev=True)'\n print rp6.page_range\n print rp6.page_params_range,\n print\n\n rp7 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=7, request=r, auto_hide_prev=True)\n print\n print 'rp7 = RequestPaginator(users, per_page=2, curr_page=2, display_pages=7, request=r, auto_hide_prev=True)'\n print rp7.page_range\n print rp7.page_params_range,\n print", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/duoduo369/django-paginator-plus/archive/v0.2.0.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/duoduo369/django-paginator-plus", "keywords": "django,paginator", "license": "MIT", "maintainer": null, "maintainer_email": null, "name": "django-paginator-plus", "package_url": "https://pypi.org/project/django-paginator-plus/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-paginator-plus/", "project_urls": { "Download": "https://github.com/duoduo369/django-paginator-plus/archive/v0.2.0.tar.gz", "Homepage": "https://github.com/duoduo369/django-paginator-plus" }, "release_url": "https://pypi.org/project/django-paginator-plus/0.2.0/", "requires_dist": null, "requires_python": null, "summary": "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.", "version": "0.2.0" }, "last_serial": 1336804, "releases": { "0.0.1": [], "0.1.1": [], "0.1.2": [], "0.2.0": [] }, "urls": [] }