Джанго триграмма - PullRequest
       40

Джанго триграмма

0 голосов
/ 11 ноября 2018

Я пытался реализовать функциональность trigram_s Similar в моем бэкэнд-коде Django. Я получаю ошибку

web_1 | Traceback (последний вызов был последним):

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", строка 41, внутри

web_1 | response = get_response (запрос)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", строка 187, в _get_response

web_1 | response = self.process_exception_by_middleware (e, запрос)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", строка 185, в _get_response

web_1 | response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py", строка 58, в wrapped_view

web_1 | return view_func (* args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/views/generic/base.py", строка 68, вид

web_1 | вернуть self.dispatch (запрос, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", строка 489, в отправке

web_1 | response = self.handle_exception (exc)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", строка 449, в handle_exception

web_1 | self.raise_uncaught_exception (отл)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", строка 486, в отправке

web_1 | ответ = обработчик (запрос, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/rest_framework/generics.py", строка 201, в get

web_1 | вернуть self.list (запрос, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/rest_framework/mixins.py", строка 40, в списке

web_1 | queryset = self.filter_queryset (self.get_queryset ())

web_1 | Файл "/usr/local/lib/python3.6/site-packages/profilehooks.py", строка 239, в new_fn

web_1 | return fp (* args, ** kw)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/profilehooks.py", строка 347, в вызов

web_1 | возвращение profiler.runcall (self.fn, * args, ** kw)

web_1 | Файл "/usr/local/lib/python3.6/cProfile.py", строка 109, в runcall

web_1 | return func (* args, ** kw)

web_1 | Файл "/code/src/users/views.py", строка 266, в filter_queryset

web_1 | major__name__trigram_s Similar = "CS"

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", строка 784, в фильтре

web_1 | return self._filter_or_exclude (False, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/db/models/query.py", строка 802, в _filter_or_exclude

web_1 | clone.query.add_q (Q (* args, ** kwargs))

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", строка 1250, в add_q

web_1 | предложение, _ = self._add_q (q_object, self.used_aliases)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", строка 1276, в _add_q

web_1 | allow_joins = allow_joins, split_subq = split_subq,

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", строка 1210, в build_filter

web_1 | condition = self.build_lookup (lookups, col, value)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", строка 1102, в build_lookup

web_1 | lhs = self.try_transform (lhs, имя, поиск)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/db/models/sql/query.py", строка 1120, в try_transform

web_1 | (name, lhs.output_field. class . name ))

web_1 | django.core.exceptions.FieldError: Неподдерживаемый поиск 'trigram_s Similar' для CharField или объединение в поле не разрешено.

web_1 | 2018-11-11 19: 03: 58,144 ОШИБКА Внутренняя ошибка сервера: / mentors /

web_1 | Traceback (последний вызов был последним):

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/core/handlers/exception.py", строка 41, во внутреннем

web_1 | response = get_response (запрос)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", строка 187, в _get_response

web_1 | response = self.process_exception_by_middleware (e, запрос)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/core/handlers/base.py", строка 185, в _get_response

web_1 | response = wrapped_callback (запрос, * callback_args, ** callback_kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/views/decorators/csrf.py", строка 58, в wrapped_view

web_1 | return view_func (* args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/django/views/generic/base.py", строка 68, вид

web_1 | вернуть self.dispatch (запрос, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site-packages/rest_framework/views.py", строка 489, в отправке

web_1 | response = self.handle_exception (exc)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / rest_framework / views.py ", строка 449, в handle_exception

web_1 | self.raise_uncaught_exception (отл)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / rest_framework / views.py ", строка 486, в отправке

web_1 | ответ = обработчик (запрос, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / rest_framework / generics.py ", строка 201, в get

web_1 | вернуть self.list (запрос, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / rest_framework / mixins.py ", строка 40, в списке

web_1 | queryset = self.filter_queryset (self.get_queryset ())

web_1 | Файл "/usr/local/lib/python3.6/site- packages / profilehooks.py ", строка 239, в new_fn

web_1 | return fp (* args, ** kw)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / profilehooks.py ", строка 347, в вызов

web_1 | возвращение profiler.runcall (self.fn, * args, ** kw)

web_1 | Файл "/usr/local/lib/python3.6/cProfile.py", строка 109, в runcall

web_1 | return func (* args, ** kw)

web_1 | Файл "/code/src/users/views.py", строка 266, в filter_queryset

web_1 | major__name__trigram_s Similar = "CS"

web_1 | Файл "/usr/local/lib/python3.6/site- packages / django / db / models / query.py ", строка 784, в фильтре

web_1 | вернуть self._filter_or_exclude (False, * args, ** kwargs)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / django / db / models / query.py ", строка 802, в _filter_or_exclude

web_1 | clone.query.add_q (Q (* args, ** kwargs))

web_1 | Файл "/usr/local/lib/python3.6/site- packages / django / db / models / sql / query.py ", строка 1250, в add_q

web_1 | предложение, _ = self._add_q (q_object, self.used_aliases)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / django / db / models / sql / query.py ", строка 1276, в _add_q

web_1 | allow_joins = allow_joins, split_subq = split_subq,

web_1 | Файл "/usr/local/lib/python3.6/site- packages / django / db / models / sql / query.py ", строка 1210, в build_filter

web_1 | условие = self.build_lookup (поиск, столбец, значение)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / django / db / models / sql / query.py ", строка 1102, в build_lookup

web_1 | lhs = self.try_transform (lhs, имя, поиск)

web_1 | Файл "/usr/local/lib/python3.6/site- packages / django / db / models / sql / query.py ", строка 1120, в try_transform

web_1 | (name, lhs.output_field. class . name ))

web_1 | django.core.exceptions.FieldError: Неподдерживаемый поиск 'trigram_s Similar' для CharField или объединение в поле не разрешено.

Я следовал инструкциям на этой странице https://docs.djangoproject.com/en/2.0/ref/contrib/postgres/lookups/, но безрезультатно. Я правильно установил зависимости и добавил дополнительные файлы.

 for item in query:
                 item_alias = trans_dict.get(item.lower(),item)
                 major_alias = major_dict.get(item.lower(),item)
                 queryset = queryset.filter(
                     major__name__trigram_similar = major_alias
                 )

SOS!

...