我们说我有以下简单模型,用于演示目的:
Something.objects.all().values("manufacturer").annotate(frequency=Count(field))
如果我想得到每个制造商的总数,我可以做如下的事情:
values
我的目标是根据日期和时间做类似的事情。例如,每个月的总计数。
我首先想到的是,已经存在基于上述模型的数据是添加自定义属性,但您不能将其与save
一起使用。
接下来,我想将必要的字段(日,月,年,...)添加到模型中,并添加自定义pandas.merge_asof
方法来计算它们。
另一种方法是将查询集加载到pandas中并在那里进行计算。
有没有更合适的方法来做这样的事情?
答案 0 :(得分:1)
您可以这样使用:
from django.db.models.functions import TruncMonth
Something.objects
.annotate(month=TruncMonth('timestamp')) # Truncate to month to select
.values('month') # Group By month
.annotate(frequency=Count(field)) # Get count