Fix HeavySelect2TagWidget to respect custom attrs and default overrides

Closed #214
This commit is contained in:
Thomas Schreiber 2015-10-10 19:03:01 +02:00 committed by Johannes Hoppe
parent b8d53aa714
commit 2beb5d23c7
3 changed files with 11 additions and 6 deletions

View file

@ -9,4 +9,4 @@ The app includes Select2 driven Django Widgets and Form Fields.
"""
__version__ = "5.2.0"
__version__ = "5.2.1"

View file

@ -248,11 +248,10 @@ class HeavySelect2TagWidget(HeavySelect2MultipleWidget):
def build_attrs(self, extra_attrs=None, **kwargs):
"""Add select2's tag attributes."""
attrs = super(HeavySelect2TagWidget, self).build_attrs(extra_attrs, **kwargs)
attrs['data-minimum-input-length'] = 1
attrs['data-tags'] = 'true'
attrs['data-token-separators'] = [",", " "]
return attrs
self.attrs.setdefault('data-minimum-input-length', 1)
self.attrs.setdefault('data-tags', 'true')
self.attrs.setdefault('data-token-separators', [",", " "])
return super(HeavySelect2TagWidget, self).build_attrs(extra_attrs, **kwargs)
# Auto Heavy widgets

View file

@ -201,3 +201,9 @@ class TestHeavySelect2TagWidget(TestHeavySelect2Mixin):
assert 'data-minimum-input-length="1"' in output
assert 'data-tags="true"' in output
assert 'data-token-separators' in output
def test_custom_tag_attrs(self):
widget = ModelSelect2TagWidget(
queryset=Genre.objects.all(), search_fields=['title__icontains'], attrs={'data-minimum-input-length': '3'})
output = widget.render('name', 'value')
assert 'data-minimum-input-length="3"' in output