最近我正在学习Django写一个个人博客,其中要实现一个按照年和月生成博客归档的功能。查询资料后实现如下:
在blog.models
中定义博客模型如下:
一种最简单的方法是使用dates函数。
另外一种方法是使用聚合。这种方法不仅可以获取生成归档,还能得到相应月份的文章的数量。
首先处理时间字段,查询得到含年和月的结果集。然后使用values()
和annotate(Count('id'))
分组统计年和月中文章的数量。
注意不同的数据库从datetime中获取年和月的方法有所不同。本例中使用的数据库是sqlite3,使用的是sqlite的strftime。如果是oracle数据库你可能需要extract。
Share Post
Share post on Twitter
Facebook
Share post on Facebook
Google+
Share post on Google+