按年,月列出博客条目

Mat*_*hew 2 python django date

我想做这样的事情:

Entries.objects.values('date.year','date.month')
Run Code Online (Sandbox Code Playgroud)

但这条线无效.如何按年,月列出博客条目并将其显示在模板中?

谢谢!

Ala*_*air 9

如果你设置

entry_list = Entry.objects.order_by('pub_date')
Run Code Online (Sandbox Code Playgroud)

在您的视图中,您可以使用ifchanged模板标记在模板中显示月份和年份.

{% for entry in entry_list %}
{% ifchanged %}<h3>{{entry.pub_date|date:"Y"}}</h3>{% endifchanged %}
{% ifchanged %}<h4>{{entry.pub_date|date:"F"}}</h4>{% endifchanged %}
<p>{{entry.title}}</p>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

博客档案的另一个有用的Django查询集方法是日期.

例如

entry_months = Entry.objects.dates('pub_date','month','DESC')
Run Code Online (Sandbox Code Playgroud)

返回具有博客条目的每个月DateQuerySetdatetime.datetime对象.您可以在模板中使用此查询集来创建指向每月归档页面的链接.