不支持CharField的 "下 "查询或不允许在字段上加入。

问题描述 投票:0回答:1

我试图在一个查询集上执行一个稍微高级一点的查询,就像这里概述的那样。https:/docs.djangoproject.comen3.0topicsdbsearch。

我的查询集如下。

            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版。

django postgresql django-orm
1个回答
1
投票

啊......所以我似乎没有安装这个特定的查询。

过程如下。

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

CharField.register_lookup(Lower)
© www.soinside.com 2019 - 2024. All rights reserved.