小编Ale*_*ndr的帖子

Django ORM 查询集按月、周、TruncMonth 分组

如何查询group byDjango ORM 中的日期时间字段?

楷模:

class test1(models.Model):
    id = models.AutoField(primary_key=True, unique=True, verbose_name='id')
    name = models.CharField(verbose_name='name', max_length=200)
    cdate = models.DateField(verbose_name='date', default=timezone.now)
Run Code Online (Sandbox Code Playgroud)

查询集数据

for i in test1.objects.all(): 
    print i.id, i.name, i.cdate

2 a 2017-08-11
3 b 2017-08-11
4 c 2017-08-11
5 a 2017-08-11
6 a 2017-08-11
Run Code Online (Sandbox Code Playgroud)

需要按月分组并使用 Django orm 计算 ID。

查询集

data = test1.objects.annotate(month=TruncMonth('cdate')).values('month').annotate(c=Count('id'))
for i in data:
    print i
Run Code Online (Sandbox Code Playgroud)

结果

{'c': 1, 'month': datetime.date(2017, 8, 1)}
{'c': 1, 'month': datetime.date(2017, 8, 1)}
{'c': 1, 'month': datetime.date(2017, 8, 1)} …
Run Code Online (Sandbox Code Playgroud)

python django orm

1
推荐指数
1
解决办法
2706
查看次数

标签 统计

django ×1

orm ×1

python ×1