ORM Q查询

表达式:

Book.objects.filter(Q(pk=1)|(Q(user_id=1)& Q(room_id=1)))

方法:

q=Q()
q.connector="OR"
q.children.append(("pk",1))
q.children.append(("user_id",1))
q.children.append(("room_id",1))

Book.objects.filter(q)    

优点:字段可以是字符串的形式

补充

q1=Q()
q1.connector="AND"
q1.children.append(("pk",1))
q1.children.append(("user_id",1))
q2=Q()
q2.connector="AND"
q2.children.append(("pk",1))
q2.children.append(("user_id",1))
q=Q()
q.add(q1, 'OR')
q.add(q2, 'OR')
# 相当于q1 or q2 
原文地址:https://www.cnblogs.com/wt7018/p/11421715.html