This library is aimed to simplify creation of user sorted lists. Inspired by https://gist.github.com/piquadrat/3833430
Install with pip or setup.py
Add ordered_listview into INSTALLED_APPS.
INSTALLED_APPS += ['ordered__listview']
Add template tags lib into builtins.
add_to_builtins('ordered_listview.templatetags.ordered_listview') // Or load with {% load ordered_listview %}
Inherit your view from OrderedListView. And setup your ordering fields.
from ordered_listview import OrderedListView class UserListView(OrderedListView): allowed_order_by = [ ('username', _('Login')), ('userfile__file__size', _('Size')), ('date_joined', _('Sing up date')) ] default_order_by = 'created'
Add a tag into you your template.
{% include "ordered_listview/fields.html" %}
To change get attribute name, just set OrderedListView.order_by attribute
class UserListView(OrderedListView): order_by = "order_by"
2. If you need to provide your own template create inside your templates ordered_listview directory with fields.html and field.html in.
fields.html - list of sortable fields field.html - order field and state template
If you want to ignore null values during sort, add fields to null_ignore_fields.
- class UserListView(OrderedListView):
null_ignore_fields = ['quantity']
- class UserListView(OrderedListView):
null_ignore_fields = '*' # For all fields