详解Django的 exclude() 函数:排除查询结果

  • Post category:Python

exclude() 函数是 Django 模型查询(QuerySet) API 的一部分,它的作用是从结果集中排除满足给定筛选条件的项。以下是 exclude() 函数的使用方法和攻略。

使用方法

使用 exclude() 函数,需要传递一个或多个筛选条件作为参数。这些参数可以是单个或多个条件,可以使用逗号或并集(|)操作符进行连接。

Model.objects.exclude(field=value)

传递多个条件的方法:

Model.objects.exclude(condition1, condition2)

exclude() 函数可以用于组合使用多个筛选条件进行排除操作,同时也可以用于排除某个属性值是 None 的记录,或者用于反转一个筛选条件以查询不匹配的记录等。

实例说明

  1. 排除特定条件的记录

假设我们有一个名为 Article 的模型,其中包含 titlebody 两个字段。现在我们想要排除 title 中包含 Hello 的记录,可以使用以下代码:

Article.objects.exclude(title__icontains='Hello')

这将从 Article 模型中排除所有 title 字段包含 Hello 的记录,并返回未被排除的记录集。

  1. 排除 Null 值的记录

假设我们需要从模型 Person 中找到名字不为空并且年龄小于 30 岁的人,可以使用以下代码:

Person.objects.exclude(name__exact='', age__gt=30)

__exact 表示值必须完全相等,这里表示排除名字为空的数据。__gt 表示严格大于,这里表示排除年龄大于 30 的数据。