diff --git a/django_select2/__init__.py b/django_select2/__init__.py index bb5fdfc..59ca68f 100644 --- a/django_select2/__init__.py +++ b/django_select2/__init__.py @@ -9,4 +9,4 @@ The app includes Select2 driven Django Widgets and Form Fields. """ -__version__ = "5.1.0" +__version__ = "5.1.1" diff --git a/django_select2/forms.py b/django_select2/forms.py index da6af18..dbd54bc 100644 --- a/django_select2/forms.py +++ b/django_select2/forms.py @@ -335,7 +335,7 @@ class ModelSelect2Mixin(object): term = term.replace('\n', ' ') for t in [t for t in term.split(' ') if not t == '']: select &= reduce(lambda x, y: x | Q(**{y: t}), search_fields, - Q(**{search_fields.pop(): t})) + Q(**{search_fields[0]: t})) return queryset.filter(select).distinct() def get_queryset(self): diff --git a/tests/test_forms.py b/tests/test_forms.py index bdac34f..351cf42 100644 --- a/tests/test_forms.py +++ b/tests/test_forms.py @@ -154,6 +154,13 @@ class TestModelSelect2Mixin(TestHeavySelect2Mixin): widget = TitleModelSelect2Widget(queryset=Genre.objects.all()) assert widget.filter_queryset(genres[0].title[:3]).exists() + widget = TitleModelSelect2Widget(search_fields=['title__icontains'], + queryset=Genre.objects.all()) + qs = widget.filter_queryset(" ".join([genres[0].title[:3], genres[0].title[3:]])) + assert qs.exists() + + + def test_model_kwarg(self): widget = ModelSelect2Widget(model=Genre, search_fields=['title__icontains']) genre = Genre.objects.last()