Django查询之—— Q查询

Q查询

 

作用: filter的字段筛选条件指定多个, 默认是and连接. 要实现or或者not需要借助Q查询

首先要导入模块

from django.db.models import Q

Q(字段__条件=值)

 

连接条件:and or not

# and的3种情况
        1. filter中指定多个参数逗号隔开: filter(参数1, 参数2)
        2. 查询指定多个逗号隔开: filter(Q(), Q())
        3. 使用&连接符: filter(Q() & Q())   

  

# 连接条件or
        filter(Q() | Q())

  

# 连接条件not
        filter(~Q() | Q()) 

  

Q的高阶用法:

能够将查询条件的左边变量的形式变成字符串的形式

q = Q()               # 第一步: 实例化一个q对象
q.connector = 'or'    # 第二步: 定义连接条件
q.children.append(('sale__gt', 100))    # 第三步: 指定字符串形式的查询字段条件, 以及范围100
q.children.append(('price__lt', 600))
res = models.Book.objects.filter(q)     # 第四步: 将q对象传入filter
print(res)

  

posted @ 2023-11-06 21:24  wellplayed  阅读(586)  评论(0编辑  收藏  举报