django匹配符的使用及说明
匹配符号 |
使用 |
说明 |
__exact |
filter(job_exact='开发') |
精确等于,如SQL的like '开发' |
__iexact |
filter(job_iexact='开发') |
精确等于并忽略大小写 |
__contains |
filter(job__contains='开发') |
某匹配,如SQL的like '%荣耀%' |
__icontains |
filter(job__icontains='开发') |
模糊匹配,忽略大小写 |
__gt |
filter(id__gt=5) |
大于 |
__gte |
filter(id__gte=5) |
大于等于 |
__lt |
filter(id__lt=5) |
小于 |
__lte |
filter(id__lte=5) |
小于等于 |
__in |
filter(id__in=[1,2,3]) |
判断是否在列表内 |
__startswith |
filter(job__startswith='开发') |
以……开头 |
__istartswith |
filter(job__istartswith='开发') |
以……开头并忽略大小写 |
__endswith |
filter(job__endswith='开发') |
以……结尾 |
__iendswith |
filter(job__iendswith='开发') |
以……结尾并忽略大小写 |
__range |
filter(job__range='开发') |
在……范围内 |
__year |
filter(job__year=2018) |
日期字段的年份 |
__month |
filter(job__month=12) |
日期字段的月份 |
__day |
filter(job__day=30) |
日期字段的天数 |
__isnull |
filter(job__isnull=True/False) |
判断是否为空 |
取别名 .
.annotate(user_name=F('create_by__name'))
group by,这里顺序不能搞错
Model.objects.values('name').annotate(Count('name')).filter(is_del=0).all()