2022年3月12日
Jerry
3430
2023年11月4日
django models 求某一字段数值和,比如一个model 存有 名字,性别,体重字段,我现在要求一下所有女生的体重总和、最小值、平均值、最大值,应该怎么写呢?
只需要下面简写就可以求出:
from django.db.models import Sum, Max, Min, Avg
totalweight = studentNode.objects.filter(sex='女').aggregate(Sum('weight'))['weight__sum']
totalweight = studentNode.objects.filter(sex='女').aggregate(Sum('weight'))['weight__avg']
totalweight = studentNode.objects.filter(sex='女').aggregate(Sum('weight'))['weight__max']
totalweight = studentNode.objects.filter(sex='女').aggregate(Sum('weight'))['weight__min']
又有这样一种情况,某个订单的状态字段有三个选项值:未支付、已支付、已关闭,这时候我想获取所有未支付和已关闭的字段,应该怎么过滤呢?
这时候可以用到 __in :
list = studentNode.objects.filter(status__in=['未支付','已关闭'])
附上 django 常用过滤:
条件选取querySet的时候,filter表示=,exclude表示!=。
querySet.distinct() 去重复
__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
原创文章,转载请注明出处:
https://jerrycoding.com/article/django-sum
《学习笔记》
0
微信
支付宝