Python 通用视图';存档年份';生成空白页
我正在使用Django的通用视图创建一个博客站点。这个 我创建的模板,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列表, 但这不是存档年的情况,对吗 谢谢!解决
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>