django(字段查询)----------12.29

2017-12-29  本文已影响0人  a荷包蛋

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对应的书本所包含的人物个数

上一篇下一篇

猜你喜欢

热点阅读