QueryWrapper使用说明
时间: 2024-08-10 13:01:45 浏览: 112
QueryWrapper
是Django ORM(Object-Relational Mapping)库中的一个实用工具类,它允许你在不编写SQL查询语句的情况下,对数据库查询进行复杂的操作。它通常用于构造更复杂、灵活的查询条件,而无需直接写SQL。
使用QueryWrapper
的一般步骤如下:
创建实例:
from django.db.models.query import QuerySet query = QuerySet(model) wrapper = QueryWrapper(query)
添加条件:
__and
和__or
: 连接多个条件,如wrapper.filter(field1__exact='value1', field2__gt=10)
.__in
,__range
,__gt
,__lt
,__gte
,__lte
: 用于指定范围或包含关系。exclude
: 对条件取反,如wrapper.exclude(field='value')
.- 更多高级选项如
__contains
,__icontains
,__startswith
,__istartswith
, etc.
执行查询:
result = wrapper.all()
转换回QuerySet: 如果你想保持原始的QuerySet特性,可以使用
as_manager()
方法,如query_manager = wrapper.as_manager()
。
这里是一个简单的示例:
from django.db.models import Q
# 假设我们有一个User模型
users = User.objects.all()
# 使用QueryWrapper过滤年龄大于20并且用户名以'A'开头的用户
filtered_users = QueryWrapper(users).filter(age__gt=20, username__istartswith='A')
# 执行查询并获取结果
filtered_results = filtered_users.all()
相关推荐


















