parler.widgets module

These widgets perform sorting on the choices within Python. This is useful when sorting is hard to due translated fields, for example:

  • the ORM can’t sort it.
  • the ordering depends on ugettext() output.
  • the model __unicode__() value depends on translated fields.

Use them like any regular form widget:

from django import forms
from parler.widgets import SortedSelect

class MyModelForm(forms.ModelForm):
    class Meta:
        # Make sure translated choices are sorted.
        model = MyModel
        widgets = {
            'preferred_language': SortedSelect,
            'country': SortedSelect,

The SortedSelect class

class parler.widgets.SortedSelect(attrs=None, choices=())

A select box which sorts it’s options.

The SortedSelectMultiple class

class parler.widgets.SortedSelectMultiple(attrs=None, choices=())

A multiple-select box which sorts it’s options.

The SortedCheckboxSelectMultiple class

class parler.widgets.SortedCheckboxSelectMultiple(attrs=None, choices=())

A checkbox group with sorted choices.