编程语言
首页 > 编程语言> > python-DateField()数据的Django每月/四方分组

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