diff options
| author | Alix <alix@spacefoot.com> | 2020-05-26 17:53:18 +0200 |
|---|---|---|
| committer | Mariusz Felisiak <felisiak.mariusz@gmail.com> | 2020-06-18 20:17:20 +0200 |
| commit | 26a413507abb38f7eee4cf62f2ee9727fdc7bf8d (patch) | |
| tree | cda26a7382c5158bbad510ccc7b80612f921d0ad /django | |
| parent | 8a902b7ee622ada258d15fb122092c1f02b82698 (diff) | |
Fixed #6933 -- Added support for searching against quoted phrases in ModelAdmin.search_fields.
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/options.py | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index b895378d37..e628afbe76 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -44,7 +44,9 @@ from django.utils.decorators import method_decorator from django.utils.html import format_html from django.utils.http import urlencode from django.utils.safestring import mark_safe -from django.utils.text import capfirst, format_lazy, get_text_list +from django.utils.text import ( + capfirst, format_lazy, get_text_list, smart_split, unescape_string_literal, +) from django.utils.translation import gettext as _, ngettext from django.views.decorators.csrf import csrf_protect from django.views.generic import RedirectView @@ -1022,7 +1024,9 @@ class ModelAdmin(BaseModelAdmin): if search_fields and search_term: orm_lookups = [construct_search(str(search_field)) for search_field in search_fields] - for bit in search_term.split(): + for bit in smart_split(search_term): + if bit.startswith(('"', "'")): + bit = unescape_string_literal(bit) or_queries = [models.Q(**{orm_lookup: bit}) for orm_lookup in orm_lookups] queryset = queryset.filter(reduce(operator.or_, or_queries)) |
