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
Some checks failed
StarFields Django Rest Framework Generics / build (push) Failing after 32s
This commit is contained in:
@@ -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)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user