Неподдерживаемый поиск 'нижний' для CharField или присоединение к полю не разрешено - PullRequest
1 голос
/ 28 апреля 2020

Я пытаюсь выполнить несколько более сложный поиск по набору запросов, как показано здесь: https://docs.djangoproject.com/en/3.0/topics/db/search/

Мой набор запросов выглядит следующим образом:

            queryset = queryset.filter(
                Q(user__username__unaccent__lower__trigram_similar=search) |
                Q(user__first_name__unaccent__lower__trigram_similar=search) |
                Q(user__last_name__unaccent__lower__trigram_similar=search)
            )

Я включил приложение django.contrib.postgres в INSTALLED_APPS в моем settings.py.

Однако я получаю следующую ошибку:

django.core.exceptions.FieldError: Unsupported lookup 'lower' for CharField or join on the field not permitted.

Кто-нибудь знаете правильную процедуру поиска?

Я использую Django> 3 и postgres версия двигателя 11.

1 Ответ

1 голос
/ 28 апреля 2020

Ааа ... так что, похоже, мне не удалось установить этот параметр c lookup.

Процесс выглядит следующим образом:

from django.db.models import CharField
from django.db.models.functions import Lower

CharField.register_lookup(Lower)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...