ORM

我们可以使用符号&或者|将多个Q()对象组合起来传递给filter(),exclude(),get()等函数。当多个Q()对象组合起来时,Django会自动生成一个新的Q()。

传Q对象,构造搜索条件

传入条件进行查询:

1 from django.db.models import Q
2 q1 = Q()
3 q1.connector = 'OR'
4 q1.children.append(('id', 1))
5 q1.children.append(('id', 2))
6 q1.children.append(('id', 3))
7     
8 models.Tb1.objects.filter(q1)

合并条件进行查询:

 1 con = Q()
 2 
 3 q1 = Q()
 4 q1.connector = 'OR'
 5 q1.children.append(('id', 1))
 6 q1.children.append(('id', 2))
 7 q1.children.append(('id', 3))
 8 
 9 q2 = Q()
10 q2.connector = 'OR'
11 q2.children.append(('status', '在线'))
12 
13 con.add(q1, 'AND')
14 con.add(q2, 'AND')
15 
16 models.Tb1.objects.filter(con)
原文地址:https://www.cnblogs.com/cuilinpu/p/10329537.html