{ "info": { "author": "Arsham Shirvani", "author_email": "arshamshirvani@gmail.com", "bugtrack_url": null, "classifiers": [ "Environment :: Web Environment", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: BSD License", "Operating System :: OS Independent", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.2", "Programming Language :: Python :: 3.3", "Programming Language :: Python :: 3.4", "Topic :: Software Development :: Libraries" ], "description": "django-cachedpaginator\n============\n\n# About\n\nA paginator that caches pages and result count. Very handy when you need to paginate an expensive query\n\nThis application was inspired by https://djangosnippets.org/snippets/1173/\n\n## Changelog\n\n* 0.0.4: Adds support for jinja. You should call the paginate function instad of using it as a tag\n\nBuild Status\n============\n\n[![Build Status](https://travis-ci.org/arsham/django-cachedpaginator.svg?branch=master)](https://travis-ci.org/arsham/django-cachedpaginator)\n\n## Usage\n\n### View\n\nIn your view:\n\n```python\nfrom django_cachedpaginator import Paginator, PageNotAnInteger, EmptyPage\n\n\ndef my_view(request):\n cache_key = 'user_your_own_key'\n cache_timeout = 600 # 10 minutes\n count_timeout = 3600\n page = request.GET.get('page')\n\n object_list = ExpensiveModel.objects.all()\n paginator = Paginator(object_list, 20, cache_key, cache_timeout, count_timeout)\n\n try:\n object_list = object_list.page(page)\n except PageNotAnInteger:\n object_list = object_list.page(1)\n except EmptyPage:\n object_list = object_list.page(image_list.num_pages)\n```\n\nOr in you CBV view:\n\n```python\nfrom django_cachedpaginator import CachedPaginatorViewMixin\n\n\nclass MyView(CachedPaginatorViewMixin, ListView):\n\n ....\n paginate_by = 7\n cache_timeout = 60\n cache_key = \"my_view\"\n```\n\nAnd it will automatically caches the pagination.\n\n\n## Templates\n\nIMPORTANT: Make sure you add 'django_cachedpaginator' to your INSTALLLED_APPS settings, otherwide django cannot load the tag\nAll you need to do is to load the tags and pass your object_list to paginator tag like so:\n\nIn django templates:\n\n```twig\n{% load cached_paginator %}\n\n...\n\n{% paginate object_list %}\n```\n\nIn jinja2 templates:\n\n```twig\n...\n\n{{ paginate(object_list) }}\n```\n\nIf you want to override the template that is used to render the paginator, you have a couple of options:\n* Either create a file in your template folder (the one you've set in your settings file) by this name: django_cachedpaginator/paginator_template.html\n* or set this variable in your settings file: PAGINATOR_TEMPLATE = 'path/to/your/template'\n\n# Settings\n\nYou can set any of these in your settings file if you needed to:\n\nPAGINATOR_TOTAL_PAGES\n\n default: 10\n\nPAGINATOR_TEMPLATE\n\n default: 'django_cachedpaginator/paginator_template.html'\n\nPAGINATOR_ID_PREFIX\n\n default: 'paginator_page'\n purpose: element's id prefix in your output\n\nPAGINATOR_FIRST_CLASS\n\n default: 'first'\n purpose: element's class in your output\n\nPAGINATOR_FIRST_VERBOSE\n\n default: 'First'\n purpose: String to show.\n\nPAGINATOR_PREVIOUS_CLASS\n\n default: 'previous'\n\nPAGINATOR_PREVIOUS_VERBOSE\n\n default: 'Previous'\n\nPAGINATOR_NEXT_CLASS\n\n default: 'next'\n\nPAGINATOR_NEXT_VERBOSE\n\n default: 'Next'\n\nPAGINATOR_LAST_CLASS\n\n default: 'last'\n\nPAGINATOR_LAST_VERBOSE\n\n default: 'Last'\n\nPAGINATOR_PAGE_PARAMETER\n\n default: 'page'\n purpose: name of the parameter in your query string\n\n# Notes\n\ncache_timeout nad count_timeout are measured in seconds and are optional. Defaults are 300 and 600.\n\nThere is no need to add the page in cache_key because Paginator takes care of it. Actually here is a list of variables added to key:\n\n* cache_key\n* per_page\n* page_number\n* cache_timeout\n* count_timeout\n\nTherefore when you change any of these, your previous cache expires.", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "http://github.com/arsham/django-cachedpaginator", "keywords": "paginator,django,cache", "license": "BSD", "maintainer": null, "maintainer_email": null, "name": "django-cachedpaginator", "package_url": "https://pypi.org/project/django-cachedpaginator/", "platform": "OS Independen", "project_url": "https://pypi.org/project/django-cachedpaginator/", "project_urls": { "Download": "UNKNOWN", "Homepage": "http://github.com/arsham/django-cachedpaginator" }, "release_url": "https://pypi.org/project/django-cachedpaginator/0.0.5/", "requires_dist": null, "requires_python": null, "summary": "Paginator that caches pages automatically.", "version": "0.0.5" }, "last_serial": 1480088, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "a7ccd8a5035b553dba584146dbf261d2", "sha256": "88eb47c8ac6a2195e3fb3a0445a2011b2716b29d7527b4452a63af53445c9231" }, "downloads": -1, "filename": "django-cachedpaginator-0.0.1.tar.gz", "has_sig": false, "md5_digest": "a7ccd8a5035b553dba584146dbf261d2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16329, "upload_time": "2014-10-24T16:20:48", "url": "https://files.pythonhosted.org/packages/38/3c/554d9ffd941354592e52ddc8471e647dde8be4a511862756f4b9369c915b/django-cachedpaginator-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "97bbf9b6973fa418eb36c35797d14b9f", "sha256": "03b30155e7e00a6b178ed6df1d5cc9fd4c1d40d6f2476d6245450f6164f01e9f" }, "downloads": -1, "filename": "django-cachedpaginator-0.0.2.tar.gz", "has_sig": false, "md5_digest": "97bbf9b6973fa418eb36c35797d14b9f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14312, "upload_time": "2014-10-27T10:29:19", "url": "https://files.pythonhosted.org/packages/d5/af/c5008cf407dbbb905f67c014cf76c63ec6edfe6eafdcbf3be9ea5bdb4098/django-cachedpaginator-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a771d940800c33b24279958567c5cba7", "sha256": "16ae546cf3a5a57537d616fe466869b65cd57e3ac023fb0fe20c4a617a45750a" }, "downloads": -1, "filename": "django-cachedpaginator-0.0.3.tar.gz", "has_sig": false, "md5_digest": "a771d940800c33b24279958567c5cba7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14485, "upload_time": "2014-10-27T11:22:45", "url": "https://files.pythonhosted.org/packages/00/f7/b5466817d80a9423291fe2f0adb82e5d36f59e22d97be8a89bfc637b7737/django-cachedpaginator-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "9a20e68bc9207e212b21eb077f3646b2", "sha256": "68ff2e5a48bfe6b0ebbb1c004a4b416a8fa6bc606d4f7c9f1b3731318811a8ea" }, "downloads": -1, "filename": "django-cachedpaginator-0.0.4.tar.gz", "has_sig": false, "md5_digest": "9a20e68bc9207e212b21eb077f3646b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15969, "upload_time": "2015-01-26T12:46:02", "url": "https://files.pythonhosted.org/packages/ca/df/0bc5d17301f3b2f48cc46362d9f1482a5bc5750875a3fda9b5d6cae80f85/django-cachedpaginator-0.0.4.tar.gz" } ], "0.0.5": [ { "comment_text": "", "digests": { "md5": "8918933f6f8ccbb63b71b39356153548", "sha256": "2dc15d58fb786777825c84ba61d8bec8acd1bd35c5c1626197c5cd8179336050" }, "downloads": -1, "filename": "django-cachedpaginator-0.0.5.tar.gz", "has_sig": false, "md5_digest": "8918933f6f8ccbb63b71b39356153548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7680, "upload_time": "2015-03-27T13:38:11", "url": "https://files.pythonhosted.org/packages/cd/74/eaebbe54ea0539d6465866586f20f4b4d85eeebae9dd81dc346a204e18b5/django-cachedpaginator-0.0.5.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8918933f6f8ccbb63b71b39356153548", "sha256": "2dc15d58fb786777825c84ba61d8bec8acd1bd35c5c1626197c5cd8179336050" }, "downloads": -1, "filename": "django-cachedpaginator-0.0.5.tar.gz", "has_sig": false, "md5_digest": "8918933f6f8ccbb63b71b39356153548", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7680, "upload_time": "2015-03-27T13:38:11", "url": "https://files.pythonhosted.org/packages/cd/74/eaebbe54ea0539d6465866586f20f4b4d85eeebae9dd81dc346a204e18b5/django-cachedpaginator-0.0.5.tar.gz" } ] }