Django按小组计算

时间:2013-04-05 07:20:49

标签: django

我需要创建一份报告,在其中我可以获得一年中每个月的价值。

models.py

class Ask(models.Model):
      team = models.CharField(max_length=255)
      date = models.DateField()

团队中只有三个可能的值:A,B,C。

如何计算个人团队每月添加的次数?

我想每年生成一份报告。

1 个答案:

答案 0 :(得分:3)

我建议您在模型中添加month字段,然后在save上传递一个月。这有助于您运行:

from django.db.models import Count
Ask.objects.filter(date__year='2013').values('month', 'team').annotate(total=Count('team'))

其他方法是使用extra参数并从日期字段中提取月份:

from django.db.models import Count
Ask.objects.filter(date__year='2013').extra(select={'month': "EXTRACT(month FROM date)"}).values('month', 'team').annotate(Count('team'))

EXTRACT方法依赖于数据库,例如在SQLite中不起作用