Skip to main content

Sorting templates API using sorting-bootstrap templatetags and Bootstrap classes.

Project description

Travis Python27 PyPi


Django-sorting-bootstrap is a pluggable mini-API to easy add sorting for querysets, links and table headers in Django templates. There is also a new tag that creates headers for sorting tables using Bootstrap’s layout.


To install django-sorting-bootstrap simply run:

pip install django-sorting-bootstrap


Include sorting_bootstrap in your INSTALLED_APPS

Put {% load sorting_tags %} at top of your templates.

Your templates have four tags available:

auto_sort sort_link sort_th sort_headers

Basic usage:

{% auto_sort queryset %}
{% sort_link "link text" "field_name" %}
{% sort_th "link text" "field_name" %}
{% sort_headers simpleschangelist %}


It sorts the queryset in place and replaces the queryset by the sorted queryset.

This needs to be called prior to a slice has been taken from a queryset. (Ordering can not be done after the slice has been taken.) In particular this will not work with generuc view object_list.

Basic usage:

{% auto_sort queryset %}


It works the same way as sort_link, but the difference is the output template that renders a table header tag <th> using Bootstrap classes and Glyphicons.

Basic usage:

{% sort_th "link text" "field_name" %}


This function is somewhat more complicated to use, but it builds the whole table headers for sorting. In order to use it you have to pass in your view a SimplesChangeList (from sorting_bootstrap.views). Let’s have an exemple using a view extending Generic ListView.

Basic usage:

from django.views.generic import ListView
class MyView(ListView)
  def get_context_data(self, **kwargs):
            # Calls the base implementation first to get a context
        context = super(self.__class__, self).get_context_data(**kwargs)

        from sorting_bootstrap.views import SimpleChangeList
        # Gets the fields that are going to be in the headers
        list_display = [ for i in self.model._meta.fields]
        # Doesnt show ID field
        list_display = list_display[1:]
        cl = SimpleChangeList(self.request, self.model, list_display)
        # Pass a change list to the views
        context['cl'] = cl

You also need to call the function in your template:

{% sort_headers cl %}


This app is based on Agiliq’s django-sorting 0.1. It has two improvements over it: the new tags and the Twitter Bootstrap compliance idea.

Project details

Release history Release notifications

This version
History Node


History Node


History Node


History Node


History Node


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-sorting-bootstrap-1.1.1.tar.gz (9.5 kB) Copy SHA256 hash SHA256 Source None May 27, 2016

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page