Django:可以在带注释的字段上使用过滤器吗?

艾文

例如,如果我要同时搜索用户的名字和姓氏:

我试过了,但是不起作用:

qs = User.objects.all().annotate(name=F('first_name') + ' ' + F('last_name'))
qs = qs.filter(name__icontains='foo bar')

SQL中可能发生此事件吗?

威廉·范昂塞姆

是的,您可以为此使用Concat[Django-doc]表达式:

from django.db.models import Value
from django.db.models.functions import Concat

User.objects.annotate(
    name=Concat('first_name', Value(' '), 'last_name')
).filter(
    name__icontains='foo bar'
)

Django会将其转换为如下查询:

SELECT `auth_user`.*,
       CONCAT_WS('', `auth_user`.`first_name`, CONCAT_WS('',  , `auth_user`.`last_name`)) AS `name`
FROM `auth_user`
WHERE CONCAT_WS('', `auth_user`.`first_name`, CONCAT_WS('',  , `auth_user`.`last_name`)) LIKE %foo bar%

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我可以使用过滤器来注释Elasticsearch中的匹配项吗?

Django:用过滤器注释计数

我可以在 postgres 语句中的公式上使用过滤器吗?

在Django 2.0上使用过滤器

在向量上使用过滤器

我可以根据Edm.DateTimeOffset字段的年份使用过滤器和构面吗

在不同字段上使用过滤器的字段上的Firestore查询顺序

Django可以使用CreateView设计AJAX字段过滤器吗?

无法使用过滤器过滤多个字段

如何在 django ManyToManyField 上应用过滤器,以便字段的多个值遵循条件?

Twig可以使用过滤器参数计算数组长度吗

在弹性搜索中使用过滤器查询嵌套字段上的聚合

Django,如何使用过滤器检查参数中是否包含字符串字段

无法使用过滤器获取ManytoMany字段的列表

Python:使用过滤器查找设备的IMEI吗?

是否可以在mutate中使用过滤器?

在角度树组件上使用过滤器

在 couchDB 上使用过滤器不起作用

我可以在 spring servlet 过滤器中使用 RequestHeader 注释吗?

使用过滤器过滤对象

AngularJS:我可以使用过滤器对ng-repeat中的数组进行分块吗?

我可以在Thunderbird的快速过滤器字段中使用布尔值(AND,OR)吗?

使用过滤器更新角度?

使用过滤器代替foreach

使用过滤器分组

使用过滤器渲染 html

使用过滤器的挑战

在OneToOne字段上添加_id并失败的Django过滤器

Django Rest Framework(ManyToMany字段上的GET过滤器)