我有一个 django 模型,其中包含日期字段()属性:
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'))
您可能想要更改的地方strftime('%m',date)
with month(date)
或任何其他计算,具体取决于您的数据库日期时间功能。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)