CRM-Q模糊查询

Q查询-模糊查询

示例一

q=Q()  # 实例化一个Q的对象q,我们可以给它加条件
q.children.append(("name","xxx")) # 添加筛选条件,即name字段为xxx的记录
# 再添加一个条件,即gender字段为男,与上一个筛选条件的关系默认是"且",即叫xxx的男同学
q.children.append(("gender","男")) 
Student.objects.filter(q)  # 过滤name为xxx的男同学

示例二

q=Q()  # 实例化一个Q的对象q
q.children.append(("name__contains","ooo")) # 添加筛选条件
Student.objects.filter(q)  # 过滤name字段中包含"ooo"的同学

示例三

# 改为"或"的关系
q=Q()  # 实例化一个Q的对象q
q.connertor="or"  # 改为"或"的关系
q.children.append(("name","xxx"),("gender","男")) 
Student.objects.filter(q)  # 过滤name为xxx或者性别是男的所有同学
# 注意:上面示例中都是确定字段,即name字段为xxx,gender字段为男,最重要的是q对象中条件元组中除了字符串,也可以是变量。
原文地址:https://www.cnblogs.com/os-linux/p/11721324.html