为 Django 存档页面选择不同的年份和月份

Posted

技术标签:

【中文标题】为 Django 存档页面选择不同的年份和月份【英文标题】:Select Distinct Years and Months for Django Archive Page 【发布时间】:2010-10-15 07:15:36 【问题描述】:

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

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

【问题讨论】:

【参考方案1】:

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

It's on this page 在文档中。

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

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

【讨论】:

很有趣,您可以回答自己的问题。不过,我也会将您的发现添加到您的原始帖子中。【参考方案2】:

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

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

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

【讨论】:

对于任何拥有DateTimeField 的人来说,它只是.datetimes(...) 在日期的情况下? 这个答案对我来说非常有效,我使用了类似.distinct('post_date') 的东西没有用【参考方案3】:

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

django.views.generic.date_based.archive_month

Reference page(在该页面上搜索上述字符串)

【讨论】:

不,它给出了当月的实际对象。我不想要这些对象。我只想要不同的月份和年份。

以上是关于为 Django 存档页面选择不同的年份和月份的主要内容,如果未能解决你的问题,请参考以下文章

WordPress 存档页面

在jsp中如何实现加一个动态下拉框选择年份,并在当前页面显示相应的月份值?

Wordpress - 存档页面:按年份列出帖子

Wordpress 存档页面,月份之后是帖子 + 日期

在页面内显示存档(在下拉列表中)和类别(在下拉列表中)

侧边栏在 WordPress 存档页面上的行为不同