Skip to main content
 首页 » 编程设计

python之如何仅按 Django 中日期时间字段的月份部分聚合数据

2025年05月04日25zhengyun_ustc

所以我的模型是这样的:

class Blog(models.Model): 
    title = models.CharField(max_length=100) 
    publication_date = models.DateField() 

现在我想按月计算博客文章的数量。原始 sql 看起来像:

SELECT COUNT (*), EXTRACT(MONTH FROM publication_date) AS month FROM blog GROUP BY month; 

我找到的一个解决方案是 here ,它建议首先获取日期列表,然后在每次迭代时使用 filter 循环遍历它。我不喜欢它,我正在寻找一种无需使用循环即可获得结果的方法。

请您参考如下方法:

您可以使用具有 Blog.objects.filter(publication_date__range=[start_of_month, end_of_month]) 效果的东西来获取这两个日期之间的所有项目。参见 range了解详情。