1 Ÿ year、month、day、week_day、hour、minute、second:对日期间类型的属性进行运算
person.objects.filter(ptime__year=2017)---------------------- 查看是x年入职的人:
person.objects.filter(ptime__gt=datetime(2017,1,1))---------查看年份大于2017.1.1的人
2.关联使用 一找多的一方信息
depart.objects.filter(person__pname__contains="悟") ----------查照人物所在的表且名字 带有‘悟’的人所在的书
3.通过多找一
person.objects.filter(ppossion__dname="红楼梦") ---------查找红楼梦部门下所有的员工
4. 聚合函数
使用aggregate()函数返回聚合函数的值---------- 函数:Avg,Count,Max,Min,Sum
person.objects.aggregate(Max('ptime'))-----------查询最大的入职时间
person.objects.aggregate(Min('ptime')) -----------查询最小的入职时间
person.objects.aggregate(Sum('ptime')) -----------求和
person.objects.aggregate(Count('id'),Sum('ptime'))
5.
depart.objects.annotate(num=Count('person'))-------查看一个部门下,有多少个成员 Count里面包含的是person类
person.objects.filter(id__gt=F('psex')) --------id>psex 因为不能直接比较,所以添加F
7.. Q对象 ------用于或查询
过滤器的方法中关键字参数查询,会合并为And进行---------- -需要进行or查询,使用Q()对象
person.objects.filter(Q(psex=1)|Q(id=1)) -------查询psex=1或者id=1的对象
8举例整合
person.objects.values_list('ppossion_id').annotate(Count('id')) -----查询id对应的书本所包含的人物个数
网友评论