Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit e735be2

Browse files
Fix #29 -- Do not filter based on empty search term
1 parent 07054b2 commit e735be2

File tree

2 files changed

+18
-7
lines changed

2 files changed

+18
-7
lines changed

‎django_select2/forms.py‎

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -400,13 +400,14 @@ def filter_queryset(self, request, term, queryset=None, **dependent_fields):
400400
search_fields = self.get_search_fields()
401401
select = Q()
402402

403-
for field in search_fields:
404-
field_select = Q(**{field: term})
405-
if "contains" in field:
406-
for word in filter(None, self._word_split_pattern.split(term)):
407-
field_select |= Q(**{field: word})
408-
409-
select |= field_select
403+
if term != "":
404+
for field in search_fields:
405+
field_select = Q(**{field: term})
406+
if "contains" in field:
407+
for word in filter(None, self._word_split_pattern.split(term)):
408+
field_select |= Q(**{field: word})
409+
410+
select |= field_select
410411

411412
if dependent_fields:
412413
select &= Q(**dependent_fields)

‎tests/test_forms.py‎

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -446,6 +446,16 @@ def test_filter_queryset(self, genres):
446446
)
447447
assert qs.exists()
448448

449+
def test_filter_queryset__empty(self, genres):
450+
widget = TitleModelSelect2Widget(queryset=Genre.objects.all())
451+
assert widget.filter_queryset(None, genres[0].title[:3]).exists()
452+
453+
widget = TitleModelSelect2Widget(
454+
search_fields=["title__icontains"], queryset=Genre.objects.all()
455+
)
456+
qs = widget.filter_queryset(None, "")
457+
assert qs.exists()
458+
449459
def test_filter_queryset__startswith(self, genres):
450460
genre = Genre.objects.create(title="Space Genre")
451461
widget = TitleModelSelect2Widget(queryset=Genre.objects.all())

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /