Неподдерживаемый поиск '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.