1.计数
User.objects.count()
根据某字段计数
User.objects.aggregate(Count("id"))
User.objects.aggregate(total=Count("id"))
2.分组,聚合
User.objects.values("year").aggregate(total=Count("id"))//这时候算出的是所有year字段的根据id算的数量
User.objects.values("year").annotate(total=Count("id")).// values()选择字段,annotate()根据不同的year分组,计算组内根据id的数量。也就是数量是经过分组的。
3.过滤
User.objects.filter(is_vip=True)
4.排序
User.objects.order_by("id")
F,Q表达式
from django.models import F
from django.db.models import Q
user = User.objects.filter(Q("year")=10 & ---)# 同时
user = User.objects.filter(Q("year")=10 | ---)# 或者
user = User.objects.filter(Q("year")=10 ~ ---)# 不是
User.objects.update(year=F("year")+1000)# 动态获取值
django orm
不等于 (exclude)
__gt 大于
__gte 大于等于
__lt 小于
__lte 小于等于
__contains,模糊查找
__in,用于filter时用列表筛选值