计算每个月的平均值

时间:2018-09-16 17:05:13

标签: django django-views

我尝试计算上个月的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 }
            });
        },
    }
}

我真的不知道该怎么做。

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

以下解决方案使用Django的aggregationTransformcategory的一个类别提供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'))