栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在查询集中过滤空或NULL名称

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在查询集中过滤空或NULL名称

你可以这样做:

Name.objects.exclude(alias__isnull=True)

如果你需要排除空值和空字符串,则首选方法是将条件链接在一起,如下所示:

Name.objects.exclude(alias__isnull=True).exclude(alias__exact='')

将这些方法链接在一起基本上可以独立地检查每个条件:在上面的示例中,我们排除了其中

alias
null
或空字符串的行,因此你将获得所有Name具有非空非空
alias
字段的对象。生成的SQL如下所示:

SELECt * FROM Name WHERe alias IS NOT NULL AND alias != ""

你还可以将多个参数传递给的单个调用

exclude
,这将确保仅将满足所有条件的对象排除在外:

Name.objects.exclude(some_field=True, other_field=True)

在此,排除其中

some_field
other_field
为true的行,因此我们得到两个字段都不为真的所有行。生成的SQL代码看起来像这样:

SELECt * FROM Name WHERe NOT (some_field = TRUE AND other_field = TRUE)

另外,如果你的逻辑比这更复杂,则可以使用Django的Q对象:

from django.db.models import QName.objects.exclude(Q(alias__isnull=True) | Q(alias__exact=''))


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/407765.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号