Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
按组划分的Django计数_Django - Fatal编程技术网

按组划分的Django计数

按组划分的Django计数,django,Django,我需要创建一个报告,在其中我可以得到一年中每个月的值 models.py class Ask(models.Model): team = models.CharField(max_length=255) date = models.DateField() 团队中只有三个可能的值:A、B、C 我如何计算每个团队一个月增加多少次 我想为每年生成一份报告。我建议您在模型中添加月字段,并在保存时传递该字段。这有助于您运行以下程序: from django.db.models i

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

models.py

class Ask(models.Model):
      team = models.CharField(max_length=255)
      date = models.DateField()
团队中只有三个可能的值:A、B、C

我如何计算每个团队一个月增加多少次


我想为每年生成一份报告。

我建议您在模型中添加
字段,并在
保存时传递该字段。这有助于您运行以下程序:

from django.db.models import Count
Ask.objects.filter(date__year='2013').values('month', 'team').annotate(total=Count('team'))
另一种方法是使用参数并从日期字段中提取月份:

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'))

但该方法依赖于数据库,例如,对于
提取
,在SQLite中不起作用<代码>STRFTIME(date,“%m”)
可以正常工作,但仅限于如何添加到模板以使其看起来像这样:2013-01团队A=2,2013-02团队A=1,2013-03团队A=7。。。现在我有了{'team__count':5,'team':u'A',month':3.0}来访问模板中的dict值,读这个:或者在简单列表中准备数据,然后在模板中迭代它