A set of Django Rest Framework utility classes to allow stable pagination by a mutable, time-ordered field (like 'by modified').
Clone or download

README.rst

drf-timeordered-pagination

build-status-image pypi-version

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

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