gpt4 book ai didi

django - 如何使用 Django ORM 获取所有文章的年份列表以及文章计数

转载 作者:行者123 更新时间:2023-12-04 23:31:51 25 4
gpt4 key购买 nike

我正在尝试使用 django ORM 来获取我所有文章的年份列表,旁边有文章计数,例如:

2010(5篇)
2009(4篇)
2008(9篇)

我尝试过以下事情:

archive = Articles.objects.dates('created', 'year').annotate(archive_count=Count('created'))

或者:

archive = Articles.objects.values('created').annotate(archive_count=Count('created'))

或者:

archive = Articles.objects.values('created').aggregate(archive_count=Count('created'))

最后一个给了我正确的计数,但没有给我任何年份值,其他的给我混合了没有或为每行设置为 1 的 archive_count 。

我哪里出错了?

最佳答案

这是一种在一个查询中执行此操作的方法:

Article.objects.extra(select={'year':"strftime('%%Y',created)"}).values('year').order_by().annotate(Count('id'))

请注意,您必须替换 strftime('%%Y',created)根据您的数据库(我使用的是sqlite)。

关于django - 如何使用 Django ORM 获取所有文章的年份列表以及文章计数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3968764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com