python-DateField()数据的Django每月/四方分组
作者:互联网
我有一个django模型,其中包含一个DateField()属性:
class Table():
date = models.DateField()
value = models.FloatField()
我正在写一个视图,按周,月,季度和年份对数据进行分组.
我已经对编码进行了硬编码,从而很简单地获得了每月的价值-通过将当月的所有价值相加并指定有多少条目来进行计算-但我觉得必须有一种更优雅的方式来做到这一点.
我的目标是这样的:
get_monthly(Table.objects.all())
>>> [123, 412, 123, 534, 234, 423, 312, 412, 123, 534, 234, 423]
get_quarterly(Table.objects.all())
>>> [123, 412, 123, 534]
列表中的值是每个月的平均值.
谁能帮我?
解决方法:
您可以使用模型的查询功能来执行此操作.
这是按月查询的示例:
from django.db.models import Avg
Table.objects.extra(select={'month':"strftime('%m',date)"}).values('month').annotate(Avg('value'))
根据数据库日期时间功能,您可能希望使用month(date)或其他任何计算方式更改strftime(‘%m’,date).
标签:datefield,python,django,django-models 来源: https://codeday.me/bug/20191209/2096211.html