條件選取QuerySet的時候,filter表示=參數可以寫查詢條件,exclude表示!=,querySet.distinct() 去重復(除了get返回值都是QuerySet,可以繼續調用所有函數)
objects.filter()
__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 空查詢
order_by
升序
XXXX.objects.all().order_by('id')
XXXX.objects.all().filter(client=client_id).order_by('check_in')
降序
XXXX.objects.all().order_by('-id')
XXXX.objects.all().filter(client=client_id).order_by('-check_in')
Q() |或 &與(逗號效果一樣) ~非(不等於)
導入from django.db.models imports Q
XXXX.objects.filter(Q(id__gt=3)|Q(bread__gt=2))
F()
導入from django.db.models imports F
查詢aaa大於bbb的信息
XXXXX.objects.filter(aaa__gt=F('bbb'))
查詢aaa大於bbb兩倍的信息
XXXXX.objects.filter(aaa__gt=F('bbb')*2)
聚合函數
導入from django.db.models import Sum,Count,Max,Min,Avg
查詢所有XXXXX的數目。
XXXXX.objects.all().aggregate(Count('id'))
查詢所有XXXXX字段的總和
XXXXX.objects.all().aggregate(Sum('字段'))
count函數:返回值是一個數字
統計所有XXXXX的數目
XXXXX.objects.count()
統計id大於3的所有XXXXX的數目
XXXXX.objects.filter(id__gt=3).count()
