{"title":"Multiple object mixins","version":"1.11","locale":"el","docname":"ref/class-based-views/mixins-multiple-object","url":"/el/1.11/ref/class-based-views/mixins-multiple-object/","canonical":"https://djangodocs.dev/el/1.11/ref/class-based-views/mixins-multiple-object/","summary":"MultipleObjectMixin Link to this heading # class django.views.generic.list. MultipleObjectMixin Link to this definition # A mixin that can be used to display a list…","html":"<h1>Multiple object mixins<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>A mixin that can be used to display a list of objects.</p>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">paginate_by</span></code> is specified, Django will paginate the results returned\nby this. You can specify the page number in the URL in one of two ways:</p>\n<ul>\n<li><p>Use the <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> parameter in the URLconf. For example, this is what\nyour URLconf might look like:</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\">url</span><span class=\"p\">(</span><span class=\"sa\">r</span><span class=\"s1\">&#39;^objects/page(?P&lt;page&gt;[0-9]+)/$&#39;</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>Pass the page number via the <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> query-string parameter. For\nexample, a URL would look like this:</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>/objects/?page=3\n</code></pre></div>\n</li>\n</ul>\n<p>These values and lists are 1-based, not 0-based, so the first page would be\nrepresented as page <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code>.</p>\n<p>For more on pagination, read the <a class=\"reference internal\" href=\"/el/1.11/topics/pagination/\"><span class=\"doc\">pagination documentation</span></a>.</p>\n<p>As a special case, you are also permitted to use <code class=\"docutils literal notranslate\"><span class=\"pre\">last</span></code> as a value for\n<code class=\"docutils literal notranslate\"><span class=\"pre\">page</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>/objects/?page=last\n</code></pre></div>\n<p>This allows you to access the final page of results without first having to\ndetermine how many pages there are.</p>\n<p>Note that <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> <em>must</em> be either a valid page number or the value\n<code class=\"docutils literal notranslate\"><span class=\"pre\">last</span></code>; any other value for <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> will result in a 404 error.</p>\n<p><strong>Extends</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/el/1.11/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>Methods and Attributes</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>A boolean specifying whether to display the page if no objects are\navailable. If this is <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> and no objects are available, the view\nwill raise a 404 instead of displaying an empty page. By default, this\nis <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>The model that this view will display data for. Specifying <code class=\"docutils literal notranslate\"><span class=\"pre\">model</span>\n<span class=\"pre\">=</span> <span class=\"pre\">Foo</span></code> is effectively the same as specifying <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span> <span class=\"pre\">=</span>\n<span class=\"pre\">Foo.objects.all()</span></code>, where <code class=\"docutils literal notranslate\"><span class=\"pre\">objects</span></code> stands for <code class=\"docutils literal notranslate\"><span class=\"pre\">Foo</span></code>’s\n<a class=\"reference internal\" href=\"/el/1.11/topics/db/managers/#default-managers\"><span class=\"std std-ref\">default manager</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>A <code class=\"docutils literal notranslate\"><span class=\"pre\">QuerySet</span></code> that represents the objects. If provided, the value of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> supersedes the value provided for <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\">Προειδοποίηση</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> is a class attribute with a <em>mutable</em> value so care\nmust be taken when using it directly. Before using it, either call\nits <a class=\"reference internal\" href=\"/el/1.11/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> method or\nretrieve it with <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> which takes care of the\ncloning behind the scenes.</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>A string or list of strings specifying the ordering to apply to the <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code>.\nValid values are the same as those for <a class=\"reference internal\" href=\"/el/1.11/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>An integer specifying how many objects should be displayed per page. If\nthis is given, the view will paginate objects with\n<code class=\"docutils literal notranslate\"><span class=\"pre\">paginate_by</span></code> objects per page. The view will\nexpect either a <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> query string parameter (via <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code>)\nor a <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> variable specified in the URLconf.</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>An integer specifying the number of «overflow» objects the last page\ncan contain. This extends the <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> limit on the last\npage by up to <code class=\"docutils literal notranslate\"><span class=\"pre\">paginate_orphans</span></code>, in order to keep the last page from\nhaving a very small number of objects.</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>A string specifying the name to use for the page parameter.\nThe view will expect this parameter to be available either as a query\nstring parameter (via <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code>) or as a kwarg variable specified\nin the URLconf. Defaults to <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>The paginator class to be used for pagination. By default,\n<a class=\"reference internal\" href=\"/el/1.11/topics/pagination/#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> is used. If the custom paginator\nclass doesn’t have the same constructor interface as\n<a class=\"reference internal\" href=\"/el/1.11/topics/pagination/#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>, you will also need to\nprovide an implementation for <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>Designates the name of the variable to use in the context.</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>Get the list of items for this view. This must be an iterable and may\nbe a queryset (in which queryset-specific behavior will be enabled).</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>Returns a string (or iterable of strings) that defines the ordering that\nwill be applied to the <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code>.</p>\n<p>Returns <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> by default.</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>Returns a 4-tuple containing (<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>,\n<code class=\"docutils literal notranslate\"><span class=\"pre\">is_paginated</span></code>).</p>\n<p>Constructed by paginating <code class=\"docutils literal notranslate\"><span class=\"pre\">queryset</span></code> into pages of size <code class=\"docutils literal notranslate\"><span class=\"pre\">page_size</span></code>.\nIf the request contains a <code class=\"docutils literal notranslate\"><span class=\"pre\">page</span></code> argument, either as a captured URL\nargument or as a GET argument, <code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code> will correspond to the\nobjects from that page.</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>Returns the number of items to paginate by, or <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> for no\npagination. By default this simply returns the value of\n<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>Returns an instance of the paginator to use for this view. By default,\ninstantiates an instance of <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>An integer specifying the number of «overflow» objects the last page\ncan contain. By default this simply returns the value of\n<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>Return a boolean specifying whether to display the page if no objects\nare available. If this method returns <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> and no objects are\navailable, the view will raise a 404 instead of displaying an empty\npage. By default, this is <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>Return the context variable name that will be used to contain\nthe list of data that this view is manipulating. If\n<code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code> is a queryset of Django objects and\n<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> is not set,\nthe context name will be the <code class=\"docutils literal notranslate\"><span class=\"pre\">model_name</span></code> of the model that\nthe queryset is composed from, with postfix <code class=\"docutils literal notranslate\"><span class=\"pre\">'_list'</span></code>\nappended. For example, the model <code class=\"docutils literal notranslate\"><span class=\"pre\">Article</span></code> would have a\ncontext object named <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>Returns context data for displaying the list of objects.</p>\n</dd></dl>\n\n<p><strong>Context</strong></p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">object_list</span></code>: The list of objects that this view is displaying. If\n<code class=\"docutils literal notranslate\"><span class=\"pre\">context_object_name</span></code> is specified, that variable will also be set\nin the context, with the same value as <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>: A boolean representing whether the results are\npaginated. Specifically, this is set to <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> if no page size has\nbeen specified, or if the available objects do not span multiple\npages.</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">paginator</span></code>: An instance of\n<a class=\"reference internal\" href=\"/el/1.11/topics/pagination/#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>. If the page is not\npaginated, this context variable will be <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>: An instance of\n<a class=\"reference internal\" href=\"/el/1.11/topics/pagination/#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>. If the page is not paginated,\nthis context variable will be <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>A mixin class that performs template-based response rendering for views\nthat operate upon a list of object instances. Requires that the view it is\nmixed with provides <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object_list</span></code>, the list of object instances that\nthe view is operating on. <code class=\"docutils literal notranslate\"><span class=\"pre\">self.object_list</span></code> may be, but is not required\nto be, a <a class=\"reference internal\" href=\"/el/1.11/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>Extends</strong></p>\n<ul class=\"simple\">\n<li><p><a class=\"reference internal\" href=\"/el/1.11/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>Methods and Attributes</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>The suffix to append to the auto-generated candidate template name.\nDefault suffix is <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>Returns a list of candidate template names. Returns the following list:</p>\n<ul class=\"simple\">\n<li><p>the value of <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> on the view (if provided)</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 Reference","url":"/el/1.11/ref/"},{"docname":"ref/class-based-views/index","title":"Built-in class-based views API","url":"/el/1.11/ref/class-based-views/"},{"docname":"ref/class-based-views/mixins","title":"Class-based views mixins","url":"/el/1.11/ref/class-based-views/mixins/"}],"prev":{"docname":"ref/class-based-views/mixins-single-object","title":"Single object mixins","url":"/el/1.11/ref/class-based-views/mixins-single-object/"},"next":{"docname":"ref/class-based-views/mixins-editing","title":"Editing mixins","url":"/el/1.11/ref/class-based-views/mixins-editing/"},"formats":{"html":"/el/1.11/ref/class-based-views/mixins-multiple-object/","markdown":"/el/1.11/ref/class-based-views/mixins-multiple-object.md","json":"/el/1.11/ref/class-based-views/mixins-multiple-object.json"},"source":"https://github.com/django/django/blob/stable/1.11.x/docs/ref/class-based-views/mixins-multiple-object.txt","official":"https://docs.djangoproject.com/el/1.11/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","1.11","1.10"],"inLocales":["en","fr","ja","id","pt-br","ko","es","el","pl"]}