Неподдерживаемый поиск 'unaccent' для поля CKEditor5 или объединение по полю не разрешено
Я использую CKEditor5
для поля body и пытаюсь фильтровать с помощью unaccent
следующим образом
Post.objects.filter(body__unaccent__icontains="text")
но я получаю ошибку
Unsupported lookup 'unaccent' for CKEditor5 Field or join on the field not permitted
FYI, я выполнил все необходимые настройки, чтобы убедиться, что unaccent
работает идеально. Откуда я знаю? Я успешно выполнил
Post.objects.filter(title__unaccent__icontains="text")
где title
определяется с помощью CharField
.
Мое предположение заключается в том, что unaccent
не сработало в первом случае из-за CKEditor5
. Есть ли способ заставить это работать с этим пакетом?
Похоже, что вы пытаетесь использовать функцию unaccent
в поле CKEditor5
или в предложении join, но она не поддерживается.
Функция unaccent
- это функция PostgreSQL
, которая удаляет знаки ударения с символов в строке, так что символы с знаками и без знаков accent
рассматриваются как эквивалентные. Она часто используется для повышения производительности полнотекстового поиска или для обработки данных, которые были введены с непоследовательными знаками ударения.
Для того чтобы использовать функцию unaccent
в поле CKEditor5
или в предложении join, вам необходимо убедиться, что ваша база данных работает под управлением PostgreSQL
и что расширение unaccent
установлено и включено. Вы можете проверить, установлено ли расширение unaccent
, выполнив следующую команду в psql terminal
:
\dx
В результате будет выведен список всех установленных расширений в вашей базе данных. Если расширение unaccent
отсутствует в списке, вы можете установить его, выполнив следующую команду:
CREATE EXTENSION unaccent;
После установки расширения unaccent вы сможете использовать функцию unaccent
в поле CKEditor5
или предложении join.