Fixed a bug that was raising FieldError in dev because of failing trigram similarity search.
Some checks failed
StarFields Django Rest Framework Generics / build (push) Failing after 32s

This commit is contained in:
2024-11-26 07:58:35 +02:00
parent 40ff763f96
commit ab3083eab3

View File

@@ -1,4 +1,5 @@
from django.utils.text import smart_split
from django.core.exceptions import FieldError
import operator
from functools import reduce
from rest_framework.settings import api_settings
@@ -414,6 +415,12 @@ class TrigramSearchFilter(BaseFilterBackend):
search_title = _('Search')
search_description = _('A search string to perform trigram similarity'
'based searching with.')
lookup_prefixes = {
'^': 'istartswith',
'=': 'iexact',
'@': 'search',
'$': 'iregex',
}
def get_filters_dict(self, request, view):
"""
@@ -534,7 +541,8 @@ class TrigramSearchFilter(BaseFilterBackend):
'search_field', query)
).filter(similarity__gt=threshold)
except ImportError:
# NOTE a weird FieldError is raised on sqlite
except (ImportError, FieldError):
# Perform very simple sqlite compatible search
search_terms = search_smart_split(query)