我尝试计算上个月的13个月的平均金额。
所以我有一张带有日期的卡,该日期有很多金额与一个类别相关联。
例如,我的卡1的类别A的金额,类别B的金额和类别C的金额...。金额,卡和类别在模型中具有各自的类别。
我的目标是为一个类别计算上个月每13个类别的平均金额。
这是我的模特:
chart: {
events: {
load: function () {
var chart = this,
series = chart.series,
seriesSum = 0;
series.forEach(function (series) {
series.data.forEach(function (point) {
seriesSum += point.y
})
})
this.update({
subtitle: { text: 'TOTAL: ' + seriesSum }
});
},
}
}
我真的不知道该怎么做。
感谢您的帮助
答案 0 :(得分:0)
以下解决方案使用Django的aggregation和Transform为category
的一个类别提供range(13)
中每个月的平均金额。如果您只需要前13个月,我建议您使用datetime.timedelta
,并在card__date__year上添加一个过滤器。您也可以将下面的过滤器合并为一行,但是会有点长...
from django.db.models import Avg
amounts_in_category = Amount.objects.filter(category = category)
for month in range(13):
amounts_in_month = amounts_in_category.filter(card__date__month = month)
average_amount_for_month = amounts_in_month.aggregate(Avg('amount'))