Source code for dal_select2_tagging.widgets

"""Widgets for Select2 and django-taggit."""

from dal_select2.widgets import TagSelect2

from django import VERSION

[docs]class TaggingSelect2(TagSelect2): """Select2 tag widget for tagging's TagField."""
[docs] def render_options(self, *args): """Render only selected tags.""" selected_choices_arg = 1 if VERSION < (1, 10) else 0 selected_choices = args[selected_choices_arg] if selected_choices: # Here, selected_choices is a string of comma-separated tags: # that's how the tagging field works, otherwise it'd be an empty # list because that's how the select field uses for None values selected_choices = selected_choices.split(',') options = [ '<option value="%s" selected="selected">%s</option>' % (c, c) for c in selected_choices ] return '\n'.join(options)