Skip to content

Commit 4afc09d

Browse files
committed
Fix to work with startswith filter
1 parent 709ec19 commit 4afc09d

File tree

2 files changed

+14
-0
lines changed

2 files changed

+14
-0
lines changed

django_select2/forms.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -405,6 +405,7 @@ def filter_queryset(self, request, term, queryset=None, **dependent_fields):
405405
search_fields[1:],
406406
Q(**{search_fields[0]: t}),
407407
)
408+
select |= Q(**{search_fields[0]: term})
408409
if dependent_fields:
409410
select &= Q(**dependent_fields)
410411

tests/test_forms.py

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

449+
def test_starts_with_filter_queryset(self, genres):
450+
genre = Genre.objects.create(title="Space Genre")
451+
widget = TitleModelSelect2Widget(queryset=Genre.objects.all())
452+
assert widget.filter_queryset(None, genre.title).exists()
453+
454+
widget = TitleModelSelect2Widget(
455+
search_fields=["title__istartswith"], queryset=Genre.objects.all()
456+
)
457+
qs = widget.filter_queryset(
458+
None, "Space Gen"
459+
)
460+
assert qs.exists()
461+
449462
def test_model_kwarg(self):
450463
widget = ModelSelect2Widget(model=Genre, search_fields=["title__icontains"])
451464
genre = Genre.objects.last()

0 commit comments

Comments
 (0)