gpt4 book ai didi

python - Django 的 YearArchiveView 通用日期 View

转载 作者:行者123 更新时间:2023-11-28 17:36:44 28 4
gpt4 key购买 nike

在 Django 中有一个名为 YearArchiveView 的通用 View 。有一个名为 make_object_list 的属性.

有人可以向我解释为什么这个选项实际上存在吗?

如果我想要一个基于年份的查询集,那么很明显我需要一个对象列表,即使它只有一个对象,这不符合逻辑吗?或者我在这里误解了什么。

最佳答案

TLDR; make_object_listobject_list 下的 View 上下文中返回给定 YearArchiveView 的所有对象>。默认情况下,make_object_list 为 False,这将导致返回的上下文 object_list 为空。

所以 django documentation这部分有点难以理解。但希望这会有所帮助(提示:查看 source code 确实有帮助)。

YearArchiveView 将在上下文中默认返回以下内容:

  • date_list:一个日期查询集,返回所有包含对象的月份。
  • 年:给定年份的日期对象。
  • next_year:下一年第一天的日期对象。
  • previous_year:前一年第一天的日期对象。

您会注意到在此列表中,给定年份的查询集对象在返回时是空的。

制作对象列表因此,从上面我们知道,默认情况下,上下文将返回一些与对象日期、当前年份、上一年和下一年相关的值,但没有来自数据库的实际查询集对象。

在 YearArchiveView 中将 make_object_list 设置为 true,将导致给定年份的所有查询集对象通过上下文传回,以便它们可以在 View 中使用。

在模板中,查询集对象将在上下文 object_list 下可用。

在给定 YearArchiveView 的模板中,您可以使用:

{% for item in object_list %}
<strong>item.title</strong> - {{ item.date }}
{% endfor %}

关于python - Django 的 YearArchiveView 通用日期 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29767723/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com