小编典典

Django按月注释分组

python

我有一个非常基本的模型:

class Link(models.Model):
    title = models.CharField(max_length=250, null=False)
    user = models.ForeignKey(User)
    url = models.CharField(max_length=250, blank=True, null=True)
    link_count = models.IntegerField(default=0)
    pub_date = models.DateField(auto_now_add=True)
    updated = models.DateTimeField(auto_now=True)

我可以使用以下命令创建按日期分组的所有条目的列表:

Link.objects.values('pub_date').order_by('-pub_date').annotate(dcount=Count('pub_date'))

这自然会按天对项目进行分组。但是我真正想做的是按月分组。无论如何,我可以使用anateate()做到这一点吗?

非常感谢,


阅读 189

收藏
2020-12-20

共1个答案

小编典典

如果您使用的是PostgreSQL,则可能需要执行以下操作:

from django.db.models import Count

Link.objects.extra(select={'month': 'extract( month from pub_date )'}).values('month').annotate(dcount=Count('pub_date'))

我不确定extract跨其他数据库的可移植性。

2020-12-20