{"title":"通用日期视图","version":"4.2","locale":"zh-hans","docname":"ref/class-based-views/generic-date-based","url":"/zh-hans/4.2/ref/class-based-views/generic-date-based/","canonical":"https://djangodocs.dev/zh-hans/4.2/ref/class-based-views/generic-date-based/","summary":"基于日期的通用视图，提供在 django.views.generic.dates 中，是用于显示基于日期数据的向下扩展页面的视图。 Note 本页的一些例子假定 Article 模型已在 myapp/models.py 中定义如下： Code Copy from django.db import models from…","html":"<span id=\"generic-date-views\"></span><h1>通用日期视图<a class=\"heading-anchor\" href=\"#module-django.views.generic.dates\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>基于日期的通用视图，提供在 <a class=\"reference internal\" href=\"#module-django.views.generic.dates\" title=\"django.views.generic.dates\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates</span></code></a> 中，是用于显示基于日期数据的向下扩展页面的视图。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>本页的一些例子假定 <code class=\"docutils literal notranslate\"><span class=\"pre\">Article</span></code> 模型已在 <code class=\"docutils literal notranslate\"><span class=\"pre\">myapp/models.py</span></code> 中定义如下：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.db</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">models</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">reverse</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">Article</span><span class=\"p\">(</span><span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">Model</span><span class=\"p\">):</span>\n    <span class=\"n\">title</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">CharField</span><span class=\"p\">(</span><span class=\"n\">max_length</span><span class=\"o\">=</span><span class=\"mi\">200</span><span class=\"p\">)</span>\n    <span class=\"n\">pub_date</span> <span class=\"o\">=</span> <span class=\"n\">models</span><span class=\"o\">.</span><span class=\"n\">DateField</span><span class=\"p\">()</span>\n\n    <span class=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_absolute_url</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">):</span>\n        <span class=\"k\">return</span> <span class=\"n\">reverse</span><span class=\"p\">(</span><span class=\"s2\">&quot;article-detail&quot;</span><span class=\"p\">,</span> <span class=\"n\">kwargs</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s2\">&quot;pk&quot;</span><span class=\"p\">:</span> <span class=\"bp\">self</span><span class=\"o\">.</span><span class=\"n\">pk</span><span class=\"p\">})</span>\n</code></pre></div>\n</aside>\n<section id=\"archiveindexview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">ArchiveIndexView</span></code><a class=\"heading-anchor\" href=\"#archiveindexview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.ArchiveIndexView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">ArchiveIndexView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.ArchiveIndexView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个按日期显示“最新”对象的顶层索引页。除非你将 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_future</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，否则不包含日期在 <em>未来</em> 的对象。</p>\n<p><strong>祖先（MRO）</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseArchiveIndexView\" title=\"django.views.generic.dates.BaseArchiveIndexView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseArchiveIndexView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin\" title=\"django.views.generic.dates.DateMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DateMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>上下文</strong></p>\n<p>除了 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a> （通过 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a>）提供的上下文外，模板的上下文将是：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">date_list</span></code>：一个 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/models/querysets/#django.db.models.query.QuerySet.dates\" title=\"django.db.models.query.QuerySet.dates\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> 对象，包含根据 <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> 有对象可用的所有年份，以 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code></a> 对象表示，按降序排列。</p></li>\n</ul>\n<p><strong>注意</strong></p>\n<ul class=\"simple\">\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">latest</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">context_object_name</span></code>。</p></li>\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">_archive</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code>。</p></li>\n<li><p>默认情况下，按年提供 <code class=\"docutils literal notranslate\"><span class=\"pre\">date_list</span></code>，但可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">date_list_period</span></code> 属性将其改为月或日。这也适用于所有子类视图。</p></li>\n</ul>\n<p><strong>示例 myapp/urls.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.dates</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArchiveIndexView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;archive/&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">ArchiveIndexView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span><span class=\"n\">model</span><span class=\"o\">=</span><span class=\"n\">Article</span><span class=\"p\">,</span> <span class=\"n\">date_field</span><span class=\"o\">=</span><span class=\"s2\">&quot;pub_date&quot;</span><span class=\"p\">),</span>\n        <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;article_archive&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>示例 myapp/article_archive.html</strong>：</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">article</span> <span class=\"k\">in</span> <span class=\"nv\">latest</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">article.pub_date</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">article.title</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>这将输出所有文章。</p>\n</dd></dl>\n\n</section>\n<section id=\"yeararchiveview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">YearArchiveView</span></code><a class=\"heading-anchor\" href=\"#yeararchiveview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.YearArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">YearArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.YearArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>每年的存档页，显示某一年的所有可用月份。除非你把 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_future</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，否则不显示日期在 <em>未来</em> 的对象。</p>\n<p><strong>祖先（MRO）</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseYearArchiveView\" title=\"django.views.generic.dates.BaseYearArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseYearArchiveView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin\" title=\"django.views.generic.dates.YearMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.YearMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin\" title=\"django.views.generic.dates.DateMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DateMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.YearArchiveView.make_object_list\">\n<span class=\"sig-name descname\"><span class=\"pre\">make_object_list</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.YearArchiveView.make_object_list\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个布尔值，用于指定是否检索今年的全部对象清单并将其传递给模板。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，将向上下文提供对象清单。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>，将使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> 查询集作为对象列表。默认情况下，这是 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.YearArchiveView.get_make_object_list\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_make_object_list</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.YearArchiveView.get_make_object_list\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>确定是否将对象列表作为上下文的一部分返回。默认返回 <a class=\"reference internal\" href=\"#django.views.generic.dates.YearArchiveView.make_object_list\" title=\"django.views.generic.dates.YearArchiveView.make_object_list\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">make_object_list</span></code></a>。</p>\n</dd></dl>\n\n<p><strong>上下文</strong></p>\n<p>除了 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a> （通过 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a>）提供的上下文外，模板的上下文将是：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">date_list</span></code>。一个 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/models/querysets/#django.db.models.query.QuerySet.dates\" title=\"django.db.models.query.QuerySet.dates\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> 对象，包含根据 <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> 有对象可用的所有月份，以 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code></a> 对象表示，按升序排列。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">year</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，代表特定年份。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">next_year</span></code>： 一个:class:~datetime.date 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示下一年的第一天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">previous_year</span></code>： 一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示前一年的第一天。</p></li>\n</ul>\n<p><strong>注意</strong></p>\n<ul class=\"simple\">\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">_archive_year</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code>。</p></li>\n</ul>\n<p><strong>示例 myapp/views.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.dates</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">YearArchiveView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleYearArchiveView</span><span class=\"p\">(</span><span class=\"n\">YearArchiveView</span><span class=\"p\">):</span>\n    <span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Article</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n    <span class=\"n\">date_field</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;pub_date&quot;</span>\n    <span class=\"n\">make_object_list</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n    <span class=\"n\">allow_future</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p><strong>示例 myapp/urls.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArticleYearArchiveView</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;&lt;int:year&gt;/&quot;</span><span class=\"p\">,</span> <span class=\"n\">ArticleYearArchiveView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;article_year_archive&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>示例 myapp/article_archive_year.html</strong>：</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">date</span> <span class=\"k\">in</span> <span class=\"nv\">date_list</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">date</span><span class=\"o\">|</span><span class=\"nf\">date</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>All Articles for <span class=\"cp\">{{</span> <span class=\"nv\">year</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;Y&quot;</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">obj</span> <span class=\"k\">in</span> <span class=\"nv\">object_list</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n            <span class=\"cp\">{{</span> <span class=\"nv\">obj.title</span> <span class=\"cp\">}}</span> - <span class=\"cp\">{{</span> <span class=\"nv\">obj.pub_date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;F j, Y&quot;</span> <span class=\"cp\">}}</span>\n        <span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"montharchiveview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">MonthArchiveView</span></code><a class=\"heading-anchor\" href=\"#montharchiveview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.MonthArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">MonthArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.MonthArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>每月的存档页，显示特定月份的所有对象。除非你把 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_future</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，否则不显示日期在 <em>未来</em> 的对象。</p>\n<p><strong>祖先（MRO）</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseMonthArchiveView\" title=\"django.views.generic.dates.BaseMonthArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseMonthArchiveView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin\" title=\"django.views.generic.dates.YearMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.YearMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin\" title=\"django.views.generic.dates.MonthMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.MonthMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin\" title=\"django.views.generic.dates.DateMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DateMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>上下文</strong></p>\n<p>除了 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleObjectMixin</span></code></a> （通过 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseDateListView</span></code></a>）提供的上下文外，模板的上下文将是：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">date_list</span></code>：一个 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/models/querysets/#django.db.models.query.QuerySet.dates\" title=\"django.db.models.query.QuerySet.dates\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a> 对象，根据 <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code>，以 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.datetime\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.datetime</span></code></a> 对象的形式表示，按升序排列，包含给定月份内有对象可用的所有日子。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">month</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，代表指定月份。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">next_month</span></code>： 一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示下个月的第一天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">previous_month</span></code>： 一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示前一个月的第一天。</p></li>\n</ul>\n<p><strong>注意</strong></p>\n<ul class=\"simple\">\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">_archive_month</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code>。</p></li>\n</ul>\n<p><strong>示例 myapp/views.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.dates</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">MonthArchiveView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleMonthArchiveView</span><span class=\"p\">(</span><span class=\"n\">MonthArchiveView</span><span class=\"p\">):</span>\n    <span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Article</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n    <span class=\"n\">date_field</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;pub_date&quot;</span>\n    <span class=\"n\">allow_future</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p><strong>示例 myapp/urls.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArticleMonthArchiveView</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># Example: /2012/08/</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;&lt;int:year&gt;/&lt;int:month&gt;/&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">ArticleMonthArchiveView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span><span class=\"n\">month_format</span><span class=\"o\">=</span><span class=\"s2\">&quot;%m&quot;</span><span class=\"p\">),</span>\n        <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;archive_month_numeric&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n    <span class=\"c1\"># Example: /2012/aug/</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;&lt;int:year&gt;/&lt;str:month&gt;/&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">ArticleMonthArchiveView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span>\n        <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;archive_month&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>示例 myapp/article_archive_month.html</strong>：</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">article</span> <span class=\"k\">in</span> <span class=\"nv\">object_list</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">article.pub_date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;F j, Y&quot;</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">article.title</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">previous_month</span> <span class=\"cp\">%}</span>\n        Previous Month: <span class=\"cp\">{{</span> <span class=\"nv\">previous_month</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;F Y&quot;</span> <span class=\"cp\">}}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">next_month</span> <span class=\"cp\">%}</span>\n        Next Month: <span class=\"cp\">{{</span> <span class=\"nv\">next_month</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;F Y&quot;</span> <span class=\"cp\">}}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"weekarchiveview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">WeekArchiveView</span></code><a class=\"heading-anchor\" href=\"#weekarchiveview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.WeekArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">WeekArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.WeekArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>每周的档案页，显示某一周的所有对象。除非你将 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_future</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，否则不显示日期在 <em>未来</em> 的对象。</p>\n<p><strong>祖先（MRO）</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseWeekArchiveView\" title=\"django.views.generic.dates.BaseWeekArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseWeekArchiveView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin\" title=\"django.views.generic.dates.YearMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.YearMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.WeekMixin\" title=\"django.views.generic.dates.WeekMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.WeekMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin\" title=\"django.views.generic.dates.DateMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DateMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>上下文</strong></p>\n<p>除了 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleObjectMixin</span></code></a> （通过 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseDateListView</span></code></a>）提供的上下文外，模板的上下文将是：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">week</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，表示指定星期的第一天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">next_week</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示下周的第一天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">previous_week</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示前一周的第一天。</p></li>\n</ul>\n<p><strong>注意</strong></p>\n<ul class=\"simple\">\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">_archive_week</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">week_format</span></code> 属性是一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/time.html#time.strptime\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">strptime()</span></code></a> 格式字符串，用于解析星期数。支持的值如下：</p>\n<ul>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'%U'</span></code>：根据美国的周制，一周从周日开始。这是默认值。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'%W'</span></code>：与 <code class=\"docutils literal notranslate\"><span class=\"pre\">'%U'</span></code> 类似，但它假定一周从星期一开始。这与 ISO 8601 周号不同。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'%V'</span></code> ： ISO 8601 周号，即一周开始于星期一。</p></li>\n</ul>\n</li>\n</ul>\n<p><strong>示例 myapp/views.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.dates</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">WeekArchiveView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleWeekArchiveView</span><span class=\"p\">(</span><span class=\"n\">WeekArchiveView</span><span class=\"p\">):</span>\n    <span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Article</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n    <span class=\"n\">date_field</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;pub_date&quot;</span>\n    <span class=\"n\">week_format</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;%W&quot;</span>\n    <span class=\"n\">allow_future</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p><strong>示例 myapp/urls.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArticleWeekArchiveView</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># Example: /2012/week/23/</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;&lt;int:year&gt;/week/&lt;int:week&gt;/&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">ArticleWeekArchiveView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span>\n        <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;archive_week&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>示例 myapp/article_archive_week.html</strong>：</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>Week <span class=\"cp\">{{</span> <span class=\"nv\">week</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s1\">:&#39;W&#39;</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">article</span> <span class=\"k\">in</span> <span class=\"nv\">object_list</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">article.pub_date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;F j, Y&quot;</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">article.title</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">previous_week</span> <span class=\"cp\">%}</span>\n        Previous Week: <span class=\"cp\">{{</span> <span class=\"nv\">previous_week</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;W&quot;</span> <span class=\"cp\">}}</span> of year <span class=\"cp\">{{</span> <span class=\"nv\">previous_week</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;Y&quot;</span> <span class=\"cp\">}}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">previous_week</span> <span class=\"k\">and</span> <span class=\"nv\">next_week</span> <span class=\"cp\">%}</span>--<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">next_week</span> <span class=\"cp\">%}</span>\n        Next week: <span class=\"cp\">{{</span> <span class=\"nv\">next_week</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;W&quot;</span> <span class=\"cp\">}}</span> of year <span class=\"cp\">{{</span> <span class=\"nv\">next_week</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;Y&quot;</span> <span class=\"cp\">}}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>在这个例子中，你输出的是周数。请记住，由 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 模板过滤器用 '`W'` 格式字符计算的星期数与 <a class=\"reference external\" href=\"https://docs.python.org/3/library/time.html#time.strftime\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">strftime()</span></code></a> 和 <a class=\"reference external\" href=\"https://docs.python.org/3/library/time.html#time.strptime\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">strptime()</span></code></a> 用 <code class=\"docutils literal notranslate\"><span class=\"pre\">'%W'</span></code> 格式字符串计算的星期数并不总是相同的。例如，对于 2015 年， <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 输出的周数比 <a class=\"reference external\" href=\"https://docs.python.org/3/library/time.html#time.strftime\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">strftime()</span></code></a> 输出的周数高 1。<a class=\"reference internal\" href=\"/zh-hans/4.2/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">'%U'</span></code> <a class=\"reference external\" href=\"https://docs.python.org/3/library/time.html#time.strftime\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">strftime()</span></code></a> 格式字符串没有等价物。因此，你应该避免使用 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/templates/builtins/#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 为 <code class=\"docutils literal notranslate\"><span class=\"pre\">WeekArchiveView</span></code> 生成 URL。</p>\n</dd></dl>\n\n</section>\n<section id=\"dayarchiveview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">DayArchiveView</span></code><a class=\"heading-anchor\" href=\"#dayarchiveview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.DayArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DayArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.DayArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个显示某一天所有对象的日存档页面。未来的日子会抛出 404 错误，不管未来的日子是否有任何对象存在，除非你把 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_future</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p>\n<p><strong>祖先（MRO）</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseDayArchiveView\" title=\"django.views.generic.dates.BaseDayArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDayArchiveView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin\" title=\"django.views.generic.dates.YearMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.YearMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin\" title=\"django.views.generic.dates.MonthMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.MonthMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin\" title=\"django.views.generic.dates.DayMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DayMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin\" title=\"django.views.generic.dates.DateMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DateMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>上下文</strong></p>\n<p>除了 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleObjectMixin</span></code></a> （通过 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">BaseDateListView</span></code></a>）提供的上下文外，模板的上下文将是：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">day</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，代表指定的一天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">next_day</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a> 表示第二天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">previous_day</span></code>：一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a> 表示前一天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">next_month</span></code>： 一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示下个月的第一天。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">previous_month</span></code>： 一个 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.date\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 对象，根据 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView.allow_empty\" title=\"django.views.generic.dates.BaseDateListView.allow_empty\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_empty</span></code></a> 和 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin.allow_future\" title=\"django.views.generic.dates.DateMixin.allow_future\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">allow_future</span></code></a>，表示前一个月的第一天。</p></li>\n</ul>\n<p><strong>注意</strong></p>\n<ul class=\"simple\">\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">_archive_day</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code>。</p></li>\n</ul>\n<p><strong>示例 myapp/views.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.dates</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DayArchiveView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleDayArchiveView</span><span class=\"p\">(</span><span class=\"n\">DayArchiveView</span><span class=\"p\">):</span>\n    <span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Article</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n    <span class=\"n\">date_field</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;pub_date&quot;</span>\n    <span class=\"n\">allow_future</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p><strong>示例 myapp/urls.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArticleDayArchiveView</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"c1\"># Example: /2012/nov/10/</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;&lt;int:year&gt;/&lt;str:month&gt;/&lt;int:day&gt;/&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">ArticleDayArchiveView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span>\n        <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;archive_day&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>示例 myapp/article_archive_day.html</strong>：</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">day</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">article</span> <span class=\"k\">in</span> <span class=\"nv\">object_list</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">article.pub_date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;F j, Y&quot;</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">article.title</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">previous_day</span> <span class=\"cp\">%}</span>\n        Previous Day: <span class=\"cp\">{{</span> <span class=\"nv\">previous_day</span> <span class=\"cp\">}}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">previous_day</span> <span class=\"k\">and</span> <span class=\"nv\">next_day</span> <span class=\"cp\">%}</span>--<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">next_day</span> <span class=\"cp\">%}</span>\n        Next Day: <span class=\"cp\">{{</span> <span class=\"nv\">next_day</span> <span class=\"cp\">}}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n</section>\n<section id=\"todayarchiveview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">TodayArchiveView</span></code><a class=\"heading-anchor\" href=\"#todayarchiveview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.TodayArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">TodayArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.TodayArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个显示 <em>今天</em> 所有对象的日存档页面。这和 <a class=\"reference internal\" href=\"#django.views.generic.dates.DayArchiveView\" title=\"django.views.generic.dates.DayArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DayArchiveView</span></code></a> 完全一样，只是用今天的日期代替 <code class=\"docutils literal notranslate\"><span class=\"pre\">year</span></code>／<code class=\"docutils literal notranslate\"><span class=\"pre\">month</span></code>／<code class=\"docutils literal notranslate\"><span class=\"pre\">day</span></code> 参数。</p>\n<p><strong>祖先（MRO）</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseTodayArchiveView\" title=\"django.views.generic.dates.BaseTodayArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseTodayArchiveView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseDayArchiveView\" title=\"django.views.generic.dates.BaseDayArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDayArchiveView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin\" title=\"django.views.generic.dates.YearMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.YearMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin\" title=\"django.views.generic.dates.MonthMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.MonthMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin\" title=\"django.views.generic.dates.DayMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DayMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.BaseDateListView\" title=\"django.views.generic.dates.BaseDateListView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateListView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectMixin\" title=\"django.views.generic.list.MultipleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.list.MultipleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin\" title=\"django.views.generic.dates.DateMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DateMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>注意</strong></p>\n<ul class=\"simple\">\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">_archive_today</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code>。</p></li>\n</ul>\n<p><strong>示例 myapp/views.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.dates</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">TodayArchiveView</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.models</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">Article</span>\n\n\n<span class=\"k\">class</span><span class=\"w\"> </span><span class=\"nc\">ArticleTodayArchiveView</span><span class=\"p\">(</span><span class=\"n\">TodayArchiveView</span><span class=\"p\">):</span>\n    <span class=\"n\">queryset</span> <span class=\"o\">=</span> <span class=\"n\">Article</span><span class=\"o\">.</span><span class=\"n\">objects</span><span class=\"o\">.</span><span class=\"n\">all</span><span class=\"p\">()</span>\n    <span class=\"n\">date_field</span> <span class=\"o\">=</span> <span class=\"s2\">&quot;pub_date&quot;</span>\n    <span class=\"n\">allow_future</span> <span class=\"o\">=</span> <span class=\"kc\">True</span>\n</code></pre></div>\n<p><strong>示例 myapp/urls.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">myapp.views</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">ArticleTodayArchiveView</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;today/&quot;</span><span class=\"p\">,</span> <span class=\"n\">ArticleTodayArchiveView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(),</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;archive_today&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<aside class=\"admonition-where-is-the-example-template-for-todayarchiveview admonition\">\n<p class=\"admonition-title\"><code class=\"docutils literal notranslate\"><span class=\"pre\">TodayArchiveView</span></code> 的示例模板在哪里？</p>\n<p>该视图默认使用与前面例子中的 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/flattened-index/#DayArchiveView\" title=\"DayArchiveView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DayArchiveView</span></code></a> 相同的模板。如果你需要一个不同的模板，请将 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> 属性设置为新模板的名称。</p>\n</aside>\n</dd></dl>\n\n</section>\n<section id=\"datedetailview\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">DateDetailView</span></code><a class=\"heading-anchor\" href=\"#datedetailview\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.DateDetailView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">DateDetailView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.DateDetailView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个页面代表一个单独的对象。如果对象有一个未来的日期值，除非你把 <code class=\"docutils literal notranslate\"><span class=\"pre\">allow_future</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，否则视图会默认抛出 404 错误。</p>\n<p><strong>祖先（MRO）</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin\" title=\"django.views.generic.detail.SingleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectTemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-simple/#django.views.generic.base.TemplateResponseMixin\" title=\"django.views.generic.base.TemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.TemplateResponseMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"#django.views.generic.dates.BaseDateDetailView\" title=\"django.views.generic.dates.BaseDateDetailView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.BaseDateDetailView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.YearMixin\" title=\"django.views.generic.dates.YearMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.YearMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.MonthMixin\" title=\"django.views.generic.dates.MonthMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.MonthMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DayMixin\" title=\"django.views.generic.dates.DayMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DayMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-date-based/#django.views.generic.dates.DateMixin\" title=\"django.views.generic.dates.DateMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.dates.DateMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/generic-display/#django.views.generic.detail.BaseDetailView\" title=\"django.views.generic.detail.BaseDetailView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.BaseDetailView</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectMixin\" title=\"django.views.generic.detail.SingleObjectMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.detail.SingleObjectMixin</span></code></a></p></li>\n<li><p><a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/base/#django.views.generic.base.View\" title=\"django.views.generic.base.View\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.View</span></code></a></p></li>\n</ul>\n<p><strong>上下文</strong></p>\n<ul class=\"simple\">\n<li><p>包括与 <code class=\"docutils literal notranslate\"><span class=\"pre\">DateDetailView</span></code> 中指定的 <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span></code> 相关的单个对象。</p></li>\n</ul>\n<p><strong>注意</strong></p>\n<ul class=\"simple\">\n<li><p>使用默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">_detail</span></code> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name_suffix</span></code>。</p></li>\n</ul>\n<p><strong>示例 myapp/urls.py</strong>：</p>\n<div class=\"code-block\" data-language=\"default\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Code</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Code code\"><code><span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.urls</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">path</span>\n<span class=\"kn\">from</span><span class=\"w\"> </span><span class=\"nn\">django.views.generic.dates</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">DateDetailView</span>\n\n<span class=\"n\">urlpatterns</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"n\">path</span><span class=\"p\">(</span>\n        <span class=\"s2\">&quot;&lt;int:year&gt;/&lt;str:month&gt;/&lt;int:day&gt;/&lt;int:pk&gt;/&quot;</span><span class=\"p\">,</span>\n        <span class=\"n\">DateDetailView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span><span class=\"n\">model</span><span class=\"o\">=</span><span class=\"n\">Article</span><span class=\"p\">,</span> <span class=\"n\">date_field</span><span class=\"o\">=</span><span class=\"s2\">&quot;pub_date&quot;</span><span class=\"p\">),</span>\n        <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;archive_date_detail&quot;</span><span class=\"p\">,</span>\n    <span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p><strong>示例 myapp/article_detail.html</strong>：</p>\n<div class=\"code-block\" data-language=\"html+django\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Django template</span><button type=\"button\" class=\"copy-button\" data-copy hidden><span class=\"copy-button-label\">Copy</span></button></div><pre role=\"group\" tabindex=\"0\" aria-label=\"Django template code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">object.title</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</dd></dl>\n\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>上面列出的所有通用视图都有匹配的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Base</span></code> 视图，唯一不同的是它们不包括 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-multiple-object/#django.views.generic.list.MultipleObjectTemplateResponseMixin\" title=\"django.views.generic.list.MultipleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">MultipleObjectTemplateResponseMixin</span></code></a>）用于存档视图）或 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/mixins-single-object/#django.views.generic.detail.SingleObjectTemplateResponseMixin\" title=\"django.views.generic.detail.SingleObjectTemplateResponseMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">SingleObjectTemplateResponseMixin</span></code></a> （用于 <a class=\"reference internal\" href=\"/zh-hans/4.2/ref/class-based-views/flattened-index/#DateDetailView\" title=\"DateDetailView\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">DateDetailView</span></code></a>）。</p>\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.BaseArchiveIndexView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseArchiveIndexView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.BaseArchiveIndexView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.BaseYearArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseYearArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.BaseYearArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.BaseMonthArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseMonthArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.BaseMonthArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.BaseWeekArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseWeekArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.BaseWeekArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.BaseDayArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseDayArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.BaseDayArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.BaseTodayArchiveView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseTodayArchiveView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.BaseTodayArchiveView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n<dl class=\"py class\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.dates.BaseDateDetailView\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-name descname\"><span class=\"pre\">BaseDateDetailView</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.dates.BaseDateDetailView\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd></dd></dl>\n\n</aside>\n</section>","rootId":"module-django.views.generic.dates","toc":[{"title":"ArchiveIndexView","anchor":"archiveindexview","children":[]},{"title":"YearArchiveView","anchor":"yeararchiveview","children":[]},{"title":"MonthArchiveView","anchor":"montharchiveview","children":[]},{"title":"WeekArchiveView","anchor":"weekarchiveview","children":[]},{"title":"DayArchiveView","anchor":"dayarchiveview","children":[]},{"title":"TodayArchiveView","anchor":"todayarchiveview","children":[]},{"title":"DateDetailView","anchor":"datedetailview","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/4.2/ref/"},{"docname":"ref/class-based-views/index","title":"内置基于类的视图 API","url":"/zh-hans/4.2/ref/class-based-views/"}],"prev":{"docname":"ref/class-based-views/generic-editing","title":"通用编辑视图","url":"/zh-hans/4.2/ref/class-based-views/generic-editing/"},"next":{"docname":"ref/class-based-views/mixins","title":"基于类的视图混入","url":"/zh-hans/4.2/ref/class-based-views/mixins/"},"formats":{"html":"/zh-hans/4.2/ref/class-based-views/generic-date-based/","markdown":"/zh-hans/4.2/ref/class-based-views/generic-date-based.md","json":"/zh-hans/4.2/ref/class-based-views/generic-date-based.json"},"source":"https://github.com/django/django/blob/stable/4.2.x/docs/ref/class-based-views/generic-date-based.txt","official":"https://docs.djangoproject.com/zh-hans/4.2/ref/class-based-views/generic-date-based/","inVersions":["6.1","6.0","5.2","5.1","5.0","4.2","4.1","4.0","3.2","3.1","3.0","2.2","2.1","2.0"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}