13

我想为我的 django 站点创建一个 archive_index 页面。但是,基于日期的通用视图确实没有任何帮助。我希望视图返回的字典包含至少存在一个对象类型实例的所有年份和月份。因此,如果我的博客于 2007 年 9 月开始,但在 2008 年 4 月没有帖子,我可以得到这样的东西

2009 年 - 1 月、2 月、3 月
2008 - 一月、二月、三月、五月、六月、七月、八月、九月、十月、十一月、十二月
2007 年 - 9 月、10 月、11 月、12 月
4

3 回答 3

39

这将为您提供唯一发布日期的列表:

Posts.objects.filter(draft=False).dates('post_date','month',order='DESC')

当然,您可能不需要草稿过滤器,并将“post_date”更改为您的字段名称等。

于 2009-03-24T20:26:37.327 回答
13

我找到了自己问题的答案。

它在文档的这个页面上。

有一个名为 dates 的函数可以为您提供不同的日期。所以我可以

Entry.objects.dates('pub_date','month') 获取日期时间对象列表,每个年/月一个。

于 2009-03-24T20:39:09.950 回答
1

您应该能够从内置视图中获取您描述的所有信息。你能更具体地说明你不能得到什么吗?这应该有你需要的一切:

django.views.generic.date_based.archive_month

参考页面(在该页面上搜索上述字符串)

于 2009-03-24T19:46:38.780 回答