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

  • Post category:Python

Django的exclude()函数旨在从查询结果中排除不想要的对象,常常在复杂的查询中使用。

函数作用

exclude()函数的作用是,接受一个或多个表达式作为过滤条件,在查询结果中排除这些条件所匹配的对象,返回一个新的查询集,其中包含剩余的所有对象。

使用方法

exclude()函数用法如下:

Model.objects.exclude(<条件表达式>)

其中,Model代表需要查询的模型类,条件表达式即为筛选模型对象的条件,它的格式与filter()函数的条件表达式相同。

实例演示

接下来通过两个实例,详细演示exclude()函数的使用方法:

  • 实例1:从查询集中排除年龄小于18岁的学生

假设有一个学生信息的模型Student,其中包含name、age等字段。我们需要从数据库中查询此Model,但是需要排除所有年龄小于18岁的学生。

代码如下:

from app.models import Student

students = Student.objects.exclude(age__lt=18)

其中age__lt=18表示排除所有年龄小于18岁的学生。

  • 实例2:排除用户组不是admins和managers的所有用户

假设有一个用户信息的模型User,其中包含username、user_groups等字段。我们需要从数据库中查询此Model,但是需要排除所有用户组不是admins和managers的所有用户。

代码如下:

from django.contrib.auth.models import User, Group

users = User.objects.exclude(user_groups__name__in=['admins', 'managers'])

其中user_groups__name__in=[‘admins’, ‘managers’]表示排除所有用户组不是admins和managers的所有用户。

结语

以上就是exclude()函数的作用与使用方法的完整攻略,它可以帮助我们更轻松地从查询结果中排除不想要的对象。