{"id":15661080,"url":"https://github.com/bulkan/django-sqlpaginator","last_synced_at":"2025-10-31T20:02:54.217Z","repository":{"id":4342502,"uuid":"5478384","full_name":"bulkan/django-sqlpaginator","owner":"bulkan","description":"Paginate raw sql queries using LIMIT and OFFSET. It also supports ORDER BY queries with direction","archived":false,"fork":false,"pushed_at":"2015-07-23T07:08:04.000Z","size":717,"stargazers_count":19,"open_issues_count":2,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-04-15T21:47:37.369Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/bulkan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2012-08-20T07:55:47.000Z","updated_at":"2024-11-28T16:30:29.000Z","dependencies_parsed_at":"2022-09-06T14:12:14.229Z","dependency_job_id":null,"html_url":"https://github.com/bulkan/django-sqlpaginator","commit_stats":null,"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulkan%2Fdjango-sqlpaginator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulkan%2Fdjango-sqlpaginator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulkan%2Fdjango-sqlpaginator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bulkan%2Fdjango-sqlpaginator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bulkan","download_url":"https://codeload.github.com/bulkan/django-sqlpaginator/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252577117,"owners_count":21770735,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-10-03T13:25:42.781Z","updated_at":"2025-10-31T20:02:49.184Z","avatar_url":"https://github.com/bulkan.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://secure.travis-ci.org/bulkan/django-sqlpaginator.png?branch=master)](http://travis-ci.org/bulkan/django-sqlpaginator)\n[![PyPi downloads](https://pypip.in/d/django-sqlpaginator/badge.png)](https://crate.io/packages/django-sqlpaginator/)\n\n\ndjango-sqlpaginator\n===================\n\nPaginate raw sql queries using LIMIT and OFFSET\n\nIt will also supports ORDER BY queries\n\ninstallation\n============\n\nTo install from pypi\n    \n    pip install django-sqlpaginator\n\nTo get the latest (and possibly non stable version) from git\n\n    pip install git+git://github.com/bulkan/django-sqlpaginator.git\n\nYou also need to install sqlparser\n\n    pip install git+git://github.com/andialbrecht/sqlparse.git\n\nIn settings.py\n\n```python\n    INSTALLED_APPS = (\n        ...\n        'sqlpaginator',\n        ...\n    )\n```\n\nThats it !!\n\nusage\n=====\n\nPretty much same as django.core.pagination.Paginator\n\nIf you have the following models\n\n```python\n    class Album(models.Model):\n         albumid = models.IntegerField(primary_key=True, db_column=u'AlbumId')\n         title = models.TextField(db_column=u'Title') \n         artistid = models.IntegerField(db_column=u'ArtistId')\n\n    class Artist(models.Model):\n         artistid = models.IntegerField(primary_key=True, db_column=u'ArtistId')\n         name = models.TextField(db_column=u'Name', blank=True) \n```\n\n\nand you want to paginate on Albums, then inside a view;\n\n```python\n\n    from sqlpaginator.paginator import SqlPaginator\n    from models import Album\n\n    def get_albums(request, page=1):\n        sql = \"select * from %s\" % Album._meta.db_table\n        paginator = SqlPaginator(sql, Album, page=page, order_by='title')\n\n        try:\n            albums = paginator.page(page)\n        except PageNotAnInteger:\n            # If page is not an integer, deliver first page.\n            albums = paginator.page(1)\n        except EmptyPage:\n            # If page is out of range (e.g. 9999), deliver last page of results.\n            albums = paginator.page(paginator.num_pages)\n\n        return render_to_response('albums_list.html', {'albums': albums})\n```\n\n In the template ```albums_list.html```\n\n```python\n    {% for album in albums %}\n        {# Each \"album\" is a Album model object. #}\n        {{ album.title|upper }}\u003cbr /\u003e\n    {% endfor %}\n\n    \u003cdiv class=\"pagination\"\u003e\n        \u003cspan class=\"step-links\"\u003e\n            {% if albums.has_previous %}\n                \u003ca href=\"?page={{ albums.previous_page_number }}\"\u003eprevious\u003c/a\u003e\n            {% endif %}\n\n            \u003cspan class=\"current\"\u003e\n                Page {{ albums.number }} of {{ albums.paginator.num_pages }}.\n            \u003c/span\u003e\n\n            {% if albums.has_next %}\n                \u003ca href=\"?page={{ albums.next_page_number }}\"\u003enext\u003c/a\u003e\n            {% endif %}\n        \u003c/span\u003e\n    \u003c/div\u003e\n```\n\ncontributing\n=====\n\n* Clone repo\n* Change code\n* Add tests\n* Run the tests\n```nosetests -s --with-coverage --cover-package=sqlpaginator```\n* Submit pull request\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulkan%2Fdjango-sqlpaginator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbulkan%2Fdjango-sqlpaginator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbulkan%2Fdjango-sqlpaginator/lists"}