Django模糊查询指令和filter中的Q
- 2020 年 3 月 5 日
- 筆記
格式如下所示:
表名.objects.filter(要查的字段__指令= "过滤的内容")
介绍django model 的一些常用查询指令
__exact 精确等于 like ‘aaa’ __iexact 精确等于 忽略大小写 ilike ‘aaa’ __contains 包含 like ‘%aaa%’ __icontains 包含忽略大小写ilike ‘%aaa%’,但是对于sqlite来说,contains的作用效果等同于icontains。 __gt 大于 __gte 大于等于 __lt 小于 __lte 小于等于 __in 存在于一个list范围内 __startswith 以…开头 __istartswith 以…开头 忽略大小写 __endswith 以…结尾 __iendswith 以…结尾,忽略大小写 __range 在…范围内 __year 日期字段的年份 __month 日期字段的月份 __day 日期字段的日 __isnull=True/False __isnull=True 与 __exact=None的区别
Django 中的Q ,将filter与or ,and,not联系起来
obj = UserInfo.objects.filter(password='123456',id__gt=2).exclude(phone=188)
等价于下面
obj = UserInfo.objects.filter(Q(password='123456') & Q(id__gt=2) & ~Q(phone=188))