Python 通用视图';存档年份';生成空白页

Python 通用视图';存档年份';生成空白页,python,django,view,generics,Python,Django,View,Generics,我正在使用Django的通用视图创建一个博客站点。这个 我创建的模板,entry\u archive\u day,entry\u archive\u month, entry\u archive和entry\u detail都能完美地工作 但是条目\u归档\u年没有。相反,它只是一个没有内容的有效页面(不是404或其他错误。看起来它在**object\u list**中没有看到任何对象) 我知道archive使用latest列表而不是object\u列表, 但这不是存档年的情况,对吗 谢谢!解决

我正在使用Django的通用视图创建一个博客站点。这个 我创建的模板,
entry\u archive\u day
entry\u archive\u month
entry\u archive
entry\u detail
都能完美地工作

但是
条目\u归档\u年
没有。相反,它只是一个没有内容的有效页面(不是404或其他错误。看起来它在
**object\u list**
中没有看到任何对象)

我知道
archive
使用
latest
列表而不是
object\u列表
, 但这不是存档年的情况,对吗


谢谢!

解决您的问题:

如果在调用
archive\u year
时设置
make\u object\u list=True
,则该年度的对象列表将作为
object\u list
可用

举个简单的例子,如果您的url模式

url(r'^(?P<year>\d{4})/$', 'archive_year', info_dict, name="entry_archive_year")
说明:

通用视图
archive\u year
有一个可选参数
make\u object\u list
。默认情况下,该参数设置为false,
object\u list
作为空列表传递给模板

make_object_list
:一个布尔值,指定是否检索今年的完整对象列表并将其传递给模板。如果
True
,此对象列表将作为
object_list
提供给模板。(名称
object\u list
可能不同;请参阅下面“模板上下文”部分中的
object\u list
文档)。默认情况下,这是
False

原因之一是,您可能并不总是希望在
entry\u archive\u year
视图中显示整个对象列表。该年您可能有数百篇博客文章,太多而无法在一个页面上显示

相反,
archive\u year
date\u list
添加到模板上下文中。这允许您为有条目的月份创建指向该年度月度归档页面的链接

date\u list
:根据queryset,以升序排列的
datetime.date
对象列表,表示给定年份中具有可用对象的所有月份

有更多的信息在网页上

根据下面评论中的要求,一个如何使用
日期列表的示例:

要使用
date\u list
,您的
条目\u archive\u year
模板将包含以下内容:

<ul>
  {% for month in date_list %}

    <li><a href="/blog/{{month|date:"Y"}}/{{month|date:"b"}}>
          {{month|date:"F"}}</a></li>
  {% endfor %}
</ul>
    {日期列表中月份的百分比%}
  • {%endfor%}

请注意,我已经对url进行了硬编码-实际上最好使用。例如,在野外使用的
date\u list
,请查看。

完美!感谢您的提示和清晰的回答。我不确定如何从url.py传递设置,但发现了以下示例:作为后续,您是否有指向goo的链接d使用日期列表的示例?我添加了一个示例,演示如何更改URL.py,以防其他人将来遇到同样的问题,并编写了更多关于
date\u list
的内容。这是一个非常好的答案-我今天早上遇到了同样的问题,我的头撞在墙上,直到我看到这个问题。需要在e Django医生,谢谢阿拉斯代尔。
<ul>
  {% for month in date_list %}

    <li><a href="/blog/{{month|date:"Y"}}/{{month|date:"b"}}>
          {{month|date:"F"}}</a></li>
  {% endfor %}
</ul>