{"title":"多对象混入","version":"6.1","locale":"zh-hans","docname":"ref/class-based-views/mixins-multiple-object","url":"/zh-hans/6.1/ref/class-based-views/mixins-multiple-object/","canonical":"https://djangodocs.dev/zh-hans/6.1/ref/class-based-views/mixins-multiple-object/","summary":"MultipleObjectMixin Link to this heading # class django.views.generic.list. MultipleObjectMixin Link to this definition # 一个可以用来显示对象列表的混入。 如果指定了 paginate_by ，Django…","html":"<h1>多对象混入<a class=\"heading-anchor\" href=\"#multiple-object-mixins\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"multipleobjectmixin\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleObjectMixin</span></code><a class=\"heading-anchor\" href=\"#multipleobjectmixin\"><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.list.MultipleObjectMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.list.</span></span><span class=\"sig-name descname\"><span class=\"pre\">MultipleObjectMixin</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>一个可以用来显示对象列表的混入。</p>\n<p>如果指定了 <code class=\"docutils literal notranslate\"><span class=\"pre\">paginate_by</span></code>，Django 会对返回的结果进行分页。你可以用两种方式之一在 URL 中指定页码。</p>\n<ul>\n<li><p>在 URLconf 中使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> 参数。例如，你的 URLconf 可能是这样的：</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=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;objects/page&lt;int:page&gt;/&quot;</span><span class=\"p\">,</span> <span class=\"n\">PaginatedView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">()),</span>\n</code></pre></div>\n</li>\n<li><p>通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> 查询字符串参数传递页码。例如，URL 可以如下所示：</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</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=\"Text code\"><code>/objects/?page=3\n</code></pre></div>\n</li>\n</ul>\n<p>这些数值和列表是以 1 为基础的，而不是以 0 为基础的，所以第一页将表示为 <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code> 页。</p>\n<p>更多关于分页的内容，请阅读 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/pagination/\"><span class=\"doc\">分页文档</span></a>。</p>\n<p>作为特殊情况，你也可以将 <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> 的值设为 <code class=\"docutils literal notranslate\"><span class=\"pre\">last</span></code>：</p>\n<div class=\"code-block\" data-language=\"text\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Text</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=\"Text code\"><code>/objects/?page=last\n</code></pre></div>\n<p>这允许你访问结果的最后一页，而不必首先确定有多少页。</p>\n<p>请注意，<code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> <em>必须</em> 是有效的页码或 <code class=\"docutils literal notranslate\"><span class=\"pre\">last</span></code> 值；<code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> 的任何其他值将导致 404 错误。</p>\n<p><strong>扩展</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/6.1/ref/class-based-views/mixins-simple/#django.views.generic.base.ContextMixin\" title=\"django.views.generic.base.ContextMixin\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.views.generic.base.ContextMixin</span></code></a></p></li>\n</ul>\n<p><strong>方法和属性</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.allow_empty\">\n<span class=\"sig-name descname\"><span class=\"pre\">allow_empty</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.allow_empty\"><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\">False</span></code>，并且没有可用的对象，视图将提出一个 404，而不是显示一个空的页面。默认情况下，这是 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.model\">\n<span class=\"sig-name descname\"><span class=\"pre\">model</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.model\"><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\">model</span> <span class=\"pre\">=</span> <span class=\"pre\">Foo</span></code> 实际上等于指定 <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span> <span class=\"pre\">=</span> <span class=\"pre\">Foo.objects.all()</span></code>，其中 <code class=\"docutils literal notranslate\"><span class=\"pre\">objects</span></code> 代表 <code class=\"docutils literal notranslate\"><span class=\"pre\">Foo</span></code> 的 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/db/managers/#default-managers\"><span class=\"std std-ref\">默认管理器</span></a>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">queryset</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.queryset\"><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\">QuerySet</span></code>。如果提供，<code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> 的值将取代为 <a class=\"reference internal\" href=\"#django.views.generic.list.MultipleObjectMixin.model\" title=\"django.views.generic.list.MultipleObjectMixin.model\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">model</span></code></a> 提供的值。</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> 是一个类属性，它的值是 <em>可变的</em>，所以直接使用它时一定要注意。在使用它之前，要么调用它的 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/models/querysets/#django.db.models.query.QuerySet.all\" title=\"django.db.models.query.QuerySet.all\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">all()</span></code></a> 方法，要么用 <a class=\"reference internal\" href=\"#django.views.generic.list.MultipleObjectMixin.get_queryset\" title=\"django.views.generic.list.MultipleObjectMixin.get_queryset\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_queryset()</span></code></a> 检索它，它在幕后负责克隆。</p>\n</aside>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.ordering\">\n<span class=\"sig-name descname\"><span class=\"pre\">ordering</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.ordering\"><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\">queryset</span></code> 的顺序。有效值与 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/models/querysets/#django.db.models.query.QuerySet.order_by\" title=\"django.db.models.query.QuerySet.order_by\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">order_by()</span></code></a> 的值相同。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.paginate_by\">\n<span class=\"sig-name descname\"><span class=\"pre\">paginate_by</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.paginate_by\"><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\">paginate_by</span></code> 对象分页。视图将期待一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> 查询字符串参数（通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code>）或一个在 URLconf 中指定的 <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> 变量。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.paginate_orphans\">\n<span class=\"sig-name descname\"><span class=\"pre\">paginate_orphans</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.paginate_orphans\"><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.list.MultipleObjectMixin.paginate_by\" title=\"django.views.generic.list.MultipleObjectMixin.paginate_by\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">paginate_by</span></code></a> 对最后一页的限制，最多可扩展到 <code class=\"docutils literal notranslate\"><span class=\"pre\">paginate_orphans</span></code>，以防止最后一页的对象数量非常少。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.page_kwarg\">\n<span class=\"sig-name descname\"><span class=\"pre\">page_kwarg</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.page_kwarg\"><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\">request.GET</span></code>）或作为 URLconf 中指定的 kwarg 变量。默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code>。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.paginator_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">paginator_class</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.paginator_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>用于分页的 paginator 类。默认情况下，使用 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Paginator</span></code></a>。如果自定义的分页器类没有和 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Paginator</span></code></a> 一样的构造函数接口，你还需要为 <a class=\"reference internal\" href=\"#django.views.generic.list.MultipleObjectMixin.get_paginator\" title=\"django.views.generic.list.MultipleObjectMixin.get_paginator\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_paginator()</span></code></a> 提供一个实现。</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.context_object_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">context_object_name</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.context_object_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>指定在上下文中使用的变量名称。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_queryset</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_queryset\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>获取此视图的项目列表。这必须是一个可迭代对象，也可以是一个查询集（查询集特定行为将被启用）。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_ordering\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_ordering</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_ordering\"><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\">queryset</span></code> 的排序的字符串（或字符串的迭代）。</p>\n<p>默认返回 <a class=\"reference internal\" href=\"#django.views.generic.list.MultipleObjectMixin.ordering\" title=\"django.views.generic.list.MultipleObjectMixin.ordering\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">ordering</span></code></a>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.paginate_queryset\">\n<span class=\"sig-name descname\"><span class=\"pre\">paginate_queryset</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">page_size</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.paginate_queryset\"><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\">paginator</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code>, <code class=\"docutils literal notranslate\"><span class=\"pre\">is_paginated</span></code>) 的四元元组。</p>\n<p>通过将 <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> 分页成大小为 <code class=\"docutils literal notranslate\"><span class=\"pre\">page_size</span></code> 的页面来构建。如果请求中包含一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> 参数，无论是作为一个捕获的 URL 参数还是作为一个 GET 参数，<code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code> 将对应于该页的对象。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_paginate_by\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_paginate_by</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_paginate_by\"><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\">None</span></code>。默认情况下，返回 <a class=\"reference internal\" href=\"#django.views.generic.list.MultipleObjectMixin.paginate_by\" title=\"django.views.generic.list.MultipleObjectMixin.paginate_by\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">paginate_by</span></code></a> 的值。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_paginator\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_paginator</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">queryset</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">per_page</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">orphans</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">0</span></span></em>, <em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">allow_empty_first_page</span></span><span class=\"o\"><span class=\"pre\">=</span></span><span class=\"default_value\"><span class=\"pre\">True</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_paginator\"><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.list.MultipleObjectMixin.paginator_class\" title=\"django.views.generic.list.MultipleObjectMixin.paginator_class\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">paginator_class</span></code></a> 的实例。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_paginate_orphans\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_paginate_orphans</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_paginate_orphans\"><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.list.MultipleObjectMixin.paginate_orphans\" title=\"django.views.generic.list.MultipleObjectMixin.paginate_orphans\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">paginate_orphans</span></code></a> 的值。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_allow_empty\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_allow_empty</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_allow_empty\"><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\">False</span></code>，并且没有可用的对象，视图将引发 404，而不是显示一个空页面。默认情况下，这个方法是 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_context_object_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context_object_name</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">object_list</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_context_object_name\"><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\">object_list</span></code> 是一个 Django 对象的查询集，并且 <a class=\"reference internal\" href=\"#django.views.generic.list.MultipleObjectMixin.context_object_name\" title=\"django.views.generic.list.MultipleObjectMixin.context_object_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">context_object_name</span></code></a> 没有被设置，那么上下文名称将是该查询集组成的模型的 <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code>，并加上后缀 <code class=\"docutils literal notranslate\"><span class=\"pre\">'_list'</span></code>。例如，模型 <code class=\"docutils literal notranslate\"><span class=\"pre\">Article</span></code> 将有一个名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">article_list</span></code> 的上下文对象。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectMixin.get_context_data\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_context_data</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectMixin.get_context_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>返回用于显示对象列表的上下文数据。</p>\n</dd></dl>\n\n<p><strong>上下文</strong></p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code>：该视图正在显示的对象列表。如果指定了 <code class=\"docutils literal notranslate\"><span class=\"pre\">context_object_name</span></code>，该变量也将在上下文中设置，其值与 <code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code> 相同。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">is_paginated</span></code>：一个布尔值，表示结果是否分页。具体来说，如果没有指定页面大小，或者如果可用的对象没有跨越多个页面，则设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">paginator</span></code>：一个 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/paginator/#django.core.paginator.Paginator\" title=\"django.core.paginator.Paginator\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Paginator</span></code></a> 的实例。如果页面没有分页，这个上下文变量将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">page_obj</span></code>：一个 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/paginator/#django.core.paginator.Page\" title=\"django.core.paginator.Page\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.paginator.Page</span></code></a> 的实例。如果页面没有被分页，这个上下文变量将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>。</p></li>\n</ul>\n</dd></dl>\n\n</section>\n<section id=\"multipleobjecttemplateresponsemixin\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">MultipleObjectTemplateResponseMixin</span></code><a class=\"heading-anchor\" href=\"#multipleobjecttemplateresponsemixin\"><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.list.MultipleObjectTemplateResponseMixin\">\n<em class=\"property\"><span class=\"k\"><span class=\"pre\">class</span></span><span class=\"w\"> </span></em><span class=\"sig-prename descclassname\"><span class=\"pre\">django.views.generic.list.</span></span><span class=\"sig-name descname\"><span class=\"pre\">MultipleObjectTemplateResponseMixin</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectTemplateResponseMixin\"><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\">self.object_list</span></code>，即该视图操作的对象实例列表。<code class=\"docutils literal notranslate\"><span class=\"pre\">self.object_list</span></code> 可以是，但不要求是： <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/models/querysets/#django.db.models.query.QuerySet\" title=\"django.db.models.query.QuerySet\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code></a>。</p>\n<p><strong>扩展</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/zh-hans/6.1/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\">TemplateResponseMixin</span></code></a></p></li>\n</ul>\n<p><strong>方法和属性</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name_suffix</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectTemplateResponseMixin.template_name_suffix\"><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\">_list</span></code>。</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.list.MultipleObjectTemplateResponseMixin.get_template_names\">\n<span class=\"sig-name descname\"><span class=\"pre\">get_template_names</span></span><span class=\"sig-paren\">(</span><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.list.MultipleObjectTemplateResponseMixin.get_template_names\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>返回候选模板名称的列表。返回以下列表：</p>\n<ul class=\"simple\">\n<li><p>视图中 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> 的值（如果提供）</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;app_label&gt;/&lt;model_name&gt;&lt;template_name_suffix&gt;.html</span></code></p></li>\n</ul>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"multiple-object-mixins","toc":[{"title":"MultipleObjectMixin","anchor":"multipleobjectmixin","children":[]},{"title":"MultipleObjectTemplateResponseMixin","anchor":"multipleobjecttemplateresponsemixin","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/6.1/ref/"},{"docname":"ref/class-based-views/index","title":"内置基于类的视图 API","url":"/zh-hans/6.1/ref/class-based-views/"},{"docname":"ref/class-based-views/mixins","title":"基于类的视图混入","url":"/zh-hans/6.1/ref/class-based-views/mixins/"}],"prev":{"docname":"ref/class-based-views/mixins-single-object","title":"单对象混入","url":"/zh-hans/6.1/ref/class-based-views/mixins-single-object/"},"next":{"docname":"ref/class-based-views/mixins-editing","title":"编辑混入","url":"/zh-hans/6.1/ref/class-based-views/mixins-editing/"},"formats":{"html":"/zh-hans/6.1/ref/class-based-views/mixins-multiple-object/","markdown":"/zh-hans/6.1/ref/class-based-views/mixins-multiple-object.md","json":"/zh-hans/6.1/ref/class-based-views/mixins-multiple-object.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/class-based-views/mixins-multiple-object.txt","official":"https://docs.djangoproject.com/zh-hans/6.1/ref/class-based-views/mixins-multiple-object/","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","sv","zh-hans","ga","fr","ja","id","it","pt-br","ko","es","el","pl"]}