QuerySet
filter示例:
q1 = Entry.objects.filter(headline__startswith="What")
q2 = q1.filter(pub_date__gte=datetime.date.today())
q3 = q.filter(pub_date__lte=datetime.date.today())
exclude示例:
q1 = q.exclude(body_text__icontains="food")
q2 = q1.exclude(pub_date__gte=datetime.date.today())
queryset可用的比較參數(shù)
querySet.distinct() 去重復(fù)
__exact 精確等于 like 'aaa'
__iexact 精確等于 忽略大小寫 ilike 'aaa'
__contains 包含 like '%aaa%'
__icontains 包含 忽略大小寫 ilike '%aaa%',但是對(duì)于sqlite來說,contains的作用效果等同于icontains。
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__in 存在于一個(gè)list范圍內(nèi)
__startswith 以...開頭
__istartswith 以...開頭 忽略大小寫
__endswith 以...結(jié)尾
__iendswith 以...結(jié)尾,忽略大小寫
__range 在...范圍內(nèi)
__year 日期字段的年份
__month 日期字段的月份
__day 日期字段的日
__isnull=True/False
查詢的兩種方式:
- 下述代碼查詢model對(duì)應(yīng)數(shù)據(jù)庫中日期等于2018-05-22的數(shù)據(jù):
queryset = model.objects.all()
condtions: {'date': '2018-05-22'}
query_res = queryset.filter(**condtions)
- 下述代碼查詢model對(duì)應(yīng)數(shù)據(jù)庫中日期小于2018-05-22的數(shù)據(jù):
queryset = model.objects.all()
condtions: {'date__lt': '2018-05-22'}
query_res = queryset.filter(**condtions)