5. Reference

5.1. Widgets

class easy_select2.widgets.Select2(select2attrs=None, *args, **kwargs)[source]

Implement single-valued select widget with Select2.

class easy_select2.widgets.Select2Mixin(select2attrs=None, *args, **kwargs)[source]

This mixin provides a mechanism to construct custom widget class, that will be rendered using Select2 input.

Generally should be mixed with widgets that render select input.


Return dictionary of options to be used by Select2.

render(*args, **kwargs)[source]

Extend base class’s render method by appending javascript inline text to html output.

render_js_code(id_, *args, **kwargs)[source]

Render html container for Select2 widget with options.

render_select2_options_code(options, id_)[source]

Render options for select2.

class easy_select2.widgets.Select2Multiple(select2attrs=None, *args, **kwargs)[source]

Implement multiple select widget with Select2.

5.2. Utils


Dynamically create new widget class mixed with Select2Mixin.

widget_cls: class of source widget.

Usage, for example:

class SomeModelForm(admin.ModelForm):
    class Meta:
        widgets = {
            'field': apply_select2(forms.Select),

So, apply_select2(forms.Select) will return new class, named Select2Select.

easy_select2.utils.select2_modelform(model, attrs=None, form_class=<class 'easy_select2.forms.FixedModelForm'>)[source]

Return ModelForm class for model with select2 widgets.

attrs: select2 widget attributes (width, for example) of type dict. form_class: modelform base class, forms.ModelForm by default.
SomeModelForm = select2_modelform(models.SomeModelBanner)

is the same like:

class SomeModelForm(forms.ModelForm):
    Meta = select2_modelform_meta(models.SomeModelForm)
easy_select2.utils.select2_modelform_meta(model, meta_fields=None, widgets=None, attrs=None, **kwargs)[source]

Return Meta class with Select2-enabled widgets for fields with choices (e.g. ForeignKey, CharField, etc) for use with ModelForm.


model - a model class to create Meta class for. meta_fields - dictionary with Meta class fields, for

example, {‘fields’: [‘id’, ‘name’]}
attrs - select2 widget attributes (width, for example),
must be of type dict.

**kwargs - will be merged with meta_fields.