查询方式
- filed__exict :会在sql成层面翻译成
=
,如果传递的值是None则会被翻译成is
。 - filed__iexact : 会在sql层面被翻译成
like
。 - filed__contains:会在sql层面翻译成
like binary
,区分大小写,这种方式会在传入字符串两侧加入%,也就意味着只要包含字符串就可以。 - filed__icontains:会在sql层面翻译成
like
,不区分大小写,这种方式会在传入字符串两侧加入%,也就意味着只要包含字符串就可以。 - field__in : 会在sql层面翻译成
in
,可以指定某个字段的值,是否在某个列表(列表,元组,QuerySet)中,
区间查询field__
- gt : 大于
- gte: 大于等于
- lt:小于
- lte:小于等于
- startswith:字段中字符串是以什么开头的,会区分大小写。
- istartswith:字段中字符串是以什么开头,不会区分大小写
- endswith:字段中字符串是以什么结束的,会区分大小写
- iendswith:字段中字符串是以什么结束的,不会区分大小写
时间查询
- field__range(starttime,endtime):用来查询一段时间内的数据,注意:如果传入一个没有时区的时间,会出现警告,可以使用
django.utils.timezone import make_aware
使用make_aware()
函数可以把没有时区的时间转换为一个有时区的时间 - field__data=datatime(year=,month=,day=):查询某个时间字段中符合条件的时间
- field__year=:查询某一年的
- field__month=:查询莫一个月的
- field__day=:查询莫一天的
- field__week_day= :按星期查询
- field__time(hour,minute,second):按时间查询
- field__time__range(starttime,endtime):查询一段时间的数据
- field__isnull=True :查询字段内容为空的数据
- field__regex=r"正则表达式":用正则表达式去查询字符串,区分大小写
- field__iregex :使用正则表答式查询,不区分大小写的。