Utility classes to provide time-ordered pagination over
Project description
Overview
Pagination utilities for Django REST Framework to allow for pagination by a mutable, but time-ordered field (like ‘modified’).
Requirements
Python (2.7, 3.3, 3.4)
Django (1.8+)
Django REST Framework (3.1+)
Important notes
The layout of the docs and the Git project were borrowed from: - drf-proxy-pagination - django-nsync (which was borrowed from other people too!)
Installation
Install using pip…
$ pip install drf-timeordered-pagination
In views.py, hook up your own integration into the pagination, or use one of the provided ones like so:
class ExampleClass(django.Model):
...
modified = DateTimeField(...)
...
from timeordered_pagination.views import TimeOrderedPaginationViewSetMixin
class ExampleClassView(
TimeOrderedPaginationViewSetMixin,
...,
viewsets.ModelViewSet)
...
Example
http://api.example.org/examples/ gives default pagination.
http://api.example.org/examples/?modified_after=1900-01-01T00:00:00Z gives all examples, modified after (greater than) Midnight, 1 Jan 1900, in modified order
http://api.example.org/examples/?modified_from=1900-01-01T00:00:00Z gives all examples, modified from (greater than or equal to) Midnight, 1 Jan 1900, in modified order
Testing
Install testing requirements.
$ pip install -r requirements.txt
Run with pytest.
$ py.test
You can also use the excellent tox testing tool to run the tests against all supported versions of Python and Django. Install tox globally, and then simply run:
$ tox
Documentation
To build the documentation, you’ll need to install mkdocs.
$ pip install mkdocs
To preview the documentation:
$ mkdocs serve
Running at: http://127.0.0.1:8000/
To build the documentation:
$ mkdocs build