Skip to content

Commit 76738fe

Browse files
committed
Avoid replacing tabs and newlines with spaces unless splitting search term
1 parent 2fef1c8 commit 76738fe

File tree

1 file changed

+5
-3
lines changed

1 file changed

+5
-3
lines changed

django_select2/forms.py

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,8 @@
4747
4848
"""
4949
import uuid
50+
import re
51+
from functools import reduce
5052
from itertools import chain
5153
from pickle import PicklingError # nosec
5254

@@ -396,20 +398,20 @@ def filter_queryset(self, request, term, queryset=None, **dependent_fields):
396398
queryset = self.get_queryset()
397399
search_fields = self.get_search_fields()
398400
select = Q()
399-
term = term.replace("\t", " ")
400-
term = term.replace("\n", " ")
401401

402402
for field in search_fields:
403403
field_select = Q()
404404
if "contains" in field:
405-
for t in [t for t in term.split(" ") if not t == ""]:
405+
for t in filter(None, re.split(r"\t|\n| ", term)):
406406
field_select &= Q(**{field: t})
407407
else:
408408
field_select = Q(**{field: term})
409+
409410
select |= field_select
410411

411412
if dependent_fields:
412413
select &= Q(**dependent_fields)
414+
413415
return queryset.filter(select).distinct()
414416

415417
def get_queryset(self):

0 commit comments

Comments
 (0)