django filter 中使用 or (django中Q)

来源:互联网 发布:originlab mac版 编辑:程序博客网 时间:2024/06/05 09:40
filter(**kwargs)
返回一个匹配查询参数的新的结果集.
exclude(**kwargs)

返回一个不匹配查询参数的新的结果集.


这个相信大家基本都懂,今天碰到一个需求,要将filter与or 联系起来。发现不会写!!!查了一会资料,发现要用到django Q ,下面简单介绍下:

from django.db.models import Q
Q(question__startswith='Who') | Q(question__startswith='What')
这条对应的sql语句如下

WHERE question LIKE 'Who%' OR question LIKE 'What%'

实际应用中可以这么使用:

user.object.filter(Q(question__startswith='Who') | Q(question__startswith='What'))

这样就可以查询user表中question以'who'或者'what'开头的用户了



0 0