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

Вернуться на верх