Models多条件查询方法:
1、传参数
models.UserInfo.objects.filter(id=3,name='alex')
2、传字典
需要注意的是,传入字典时,字典前面需要加** ,记为字典
dic = {'id':123,'name':'alex'}
models.UserInfo.objects.filter(**dic)
所以我们可以在在捕捉用户输入后,将输入构造成字典,然后将字典当做参数传入查询
3、传Q对象,构造搜索条件
a、在 filter() 等函式中关键字参数彼此之间都是 "AND" 关系。如果你要执行更复杂的查询(比如,
实现筛选条件的OR 关系),可以使用 Q 对象。
b、Q对象包括 AND 关系 和OR 关系
c、Q 对象可以用 & 和 | 运算符进行连接。当某个操作连接两个 Q 对象时,就会产生一个新的等
价的 Q 对象。
如:下面这段语句就产生了一个 Q ,这是用 "OR" 关系连接
Q(question__startswith='Who') | Q(question__startswith='What')
d、每种查询函式(比如 filter(), exclude(), get()) 除了能接收关键字参数以外,也能以位置参数的
形式接受一个或多个 Q 对象。如果你给查询函式传递了多个 Q 对象,那么它们彼此间都是
"AND" 关系。例如:
Poll.objects.get(