Python Django';s YearArchiveView通用日期视图
在Django中,有一个名为的通用视图,其属性为 有人能给我解释一下为什么这个选项真的存在吗 如果我想要一个基于年份的queryset,那么很明显我需要一个对象列表,即使它只有一个对象,这难道不符合逻辑吗。 或者我在这里误解了什么Python Django';s YearArchiveView通用日期视图,python,django,django-class-based-views,Python,Django,Django Class Based Views,在Django中,有一个名为的通用视图,其属性为 有人能给我解释一下为什么这个选项真的存在吗 如果我想要一个基于年份的queryset,那么很明显我需要一个对象列表,即使它只有一个对象,这难道不符合逻辑吗。 或者我在这里误解了什么make_object_list返回object_list下视图上下文中给定年份ArchiveView的所有对象。默认情况下,make_object_list为False,这将导致返回的上下文object_list为空 因此,在这一部分,理解这个问题有点棘手。但希望这能
make_object_list
返回object_list
下视图上下文中给定年份ArchiveView的所有对象。默认情况下,make_object_list
为False,这将导致返回的上下文object_list
为空
因此,在这一部分,理解这个问题有点棘手。但希望这能有所帮助(提示:看看真正有用的东西)
默认情况下,YearArchiveView
将在上下文中返回以下内容:
- 日期列表:一个日期查询集,返回包含对象的所有月份
- 年份:给定年份的日期对象
- 下一年:下一年第一天的日期对象
- 上一年:上一年第一天的日期对象
make_object_list
设置为true,将导致给定年份的所有queryset对象通过上下文传回,以便在视图中使用
在模板中,queryset对象将在上下文对象列表下可用
在给定YearArchiveView的模板中,然后可以使用:
{% for item in object_list %}
<strong>item.title</strong> - {{ item.date }}
{% endfor %}
{%用于对象列表%中的项]
item.title-{{item.date}
{%endfor%}
除了@MattWritesCode reply之外,我想说的是,在一些用例中,您只对构建导航感兴趣,而不包括很多实际对象
我想象着要处理1000篇文章,就像大报纸一样。我很可能希望在支持分页的单独视图中显示实际内容(可能还有细粒度权限访问,例如公共帖子和付费墙后面的帖子)
好问题,我只是在猜测。由于querysets是懒惰的,我不认为这会带来很大的性能提升,但在某种程度上,这也是一个方面。我会对更多的意见感兴趣。这对我现在来说是可以理解的,但我仍然需要努力才能完全理解它。还有一个问题在我身上产生了,那就是为什么其他的通用视图,比如MonthArchiveView和DayArchiveView,也没有这个属性?我相信有两个主要原因。首先,返回的数据量。其次,你更有可能每月或每天总结项目,而不是一年。