{"title":"Simple mixins","version":"4.0","locale":"en","docname":"ref/class-based-views/mixins-simple","url":"/en/4.0/ref/class-based-views/mixins-simple/","canonical":"https://djangodocs.dev/en/4.0/ref/class-based-views/mixins-simple/","summary":"ContextMixin Link to this heading # class django.views.generic.base. ContextMixin Link to this definition # Attributes extra_context Link to this definition # A…","html":"<h1>Simple mixins<a class=\"heading-anchor\" href=\"#simple-mixins\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<section id=\"contextmixin\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">ContextMixin</span></code><a class=\"heading-anchor\" href=\"#contextmixin\"><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.base.ContextMixin\">\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.base.</span></span><span class=\"sig-name descname\"><span class=\"pre\">ContextMixin</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.base.ContextMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p><strong>Attributes</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.ContextMixin.extra_context\">\n<span class=\"sig-name descname\"><span class=\"pre\">extra_context</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.base.ContextMixin.extra_context\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>A dictionary to include in the context. This is a convenient way of\nspecifying some context in\n<a class=\"reference internal\" href=\"/en/4.0/ref/class-based-views/base/#django.views.generic.base.View.as_view\" title=\"django.views.generic.base.View.as_view\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">as_view()</span></code></a>. Example usage:</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</span><span class=\"w\"> </span><span class=\"kn\">import</span> <span class=\"n\">TemplateView</span>\n<span class=\"n\">TemplateView</span><span class=\"o\">.</span><span class=\"n\">as_view</span><span class=\"p\">(</span><span class=\"n\">extra_context</span><span class=\"o\">=</span><span class=\"p\">{</span><span class=\"s1\">&#39;title&#39;</span><span class=\"p\">:</span> <span class=\"s1\">&#39;Custom Title&#39;</span><span class=\"p\">})</span>\n</code></pre></div>\n</dd></dl>\n\n<p><strong>Methods</strong></p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.ContextMixin.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.base.ContextMixin.get_context_data\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a dictionary representing the template context. The keyword\narguments provided will make up the returned context. Example usage:</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=\"k\">def</span><span class=\"w\"> </span><span class=\"nf\">get_context_data</span><span class=\"p\">(</span><span class=\"bp\">self</span><span class=\"p\">,</span> <span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">):</span>\n    <span class=\"n\">context</span> <span class=\"o\">=</span> <span class=\"nb\">super</span><span class=\"p\">()</span><span class=\"o\">.</span><span class=\"n\">get_context_data</span><span class=\"p\">(</span><span class=\"o\">**</span><span class=\"n\">kwargs</span><span class=\"p\">)</span>\n    <span class=\"n\">context</span><span class=\"p\">[</span><span class=\"s1\">&#39;number&#39;</span><span class=\"p\">]</span> <span class=\"o\">=</span> <span class=\"n\">random</span><span class=\"o\">.</span><span class=\"n\">randrange</span><span class=\"p\">(</span><span class=\"mi\">1</span><span class=\"p\">,</span> <span class=\"mi\">100</span><span class=\"p\">)</span>\n    <span class=\"k\">return</span> <span class=\"n\">context</span>\n</code></pre></div>\n<p>The template context of all class-based generic views include a\n<code class=\"docutils literal notranslate\"><span class=\"pre\">view</span></code> variable that points to the <code class=\"docutils literal notranslate\"><span class=\"pre\">View</span></code> instance.</p>\n<aside class=\"admonition-use-alters-data-where-appropriate admonition\">\n<p class=\"admonition-title\">Use <code class=\"docutils literal notranslate\"><span class=\"pre\">alters_data</span></code> where appropriate</p>\n<p>Note that having the view instance in the template context may\nexpose potentially hazardous methods to template authors.  To\nprevent methods like this from being called in the template, set\n<code class=\"docutils literal notranslate\"><span class=\"pre\">alters_data=True</span></code> on those methods.  For more information, read\nthe documentation on <a class=\"reference internal\" href=\"/en/4.0/ref/templates/api/#alters-data-description\"><span class=\"std std-ref\">rendering a template context</span></a>.</p>\n</aside>\n</dd></dl>\n\n</dd></dl>\n\n</section>\n<section id=\"templateresponsemixin\">\n<h2><code class=\"docutils literal notranslate\"><span class=\"pre\">TemplateResponseMixin</span></code><a class=\"heading-anchor\" href=\"#templateresponsemixin\"><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.base.TemplateResponseMixin\">\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.base.</span></span><span class=\"sig-name descname\"><span class=\"pre\">TemplateResponseMixin</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.base.TemplateResponseMixin\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Provides a mechanism to construct a\n<a class=\"reference internal\" href=\"/en/4.0/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a>, given\nsuitable context. The template to use is configurable and can be\nfurther customized by subclasses.</p>\n<p><strong>Attributes</strong></p>\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.TemplateResponseMixin.template_name\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_name</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.base.TemplateResponseMixin.template_name\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The full name of a template to use as defined by a string. Not defining\na <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> will raise a\n<a class=\"reference internal\" href=\"/en/4.0/ref/exceptions/#django.core.exceptions.ImproperlyConfigured\" title=\"django.core.exceptions.ImproperlyConfigured\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">django.core.exceptions.ImproperlyConfigured</span></code></a> exception.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.TemplateResponseMixin.template_engine\">\n<span class=\"sig-name descname\"><span class=\"pre\">template_engine</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.base.TemplateResponseMixin.template_engine\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The <a class=\"reference internal\" href=\"/en/4.0/ref/settings/#std-setting-TEMPLATES-NAME\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">NAME</span></code></a> of a template engine to use for\nloading the template. <code class=\"docutils literal notranslate\"><span class=\"pre\">template_engine</span></code> is passed as the <code class=\"docutils literal notranslate\"><span class=\"pre\">using</span></code>\nkeyword argument to <code class=\"docutils literal notranslate\"><span class=\"pre\">response_class</span></code>. Default is <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, which\ntells Django to search for the template in all configured engines.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.TemplateResponseMixin.response_class\">\n<span class=\"sig-name descname\"><span class=\"pre\">response_class</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.base.TemplateResponseMixin.response_class\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The response class to be returned by <code class=\"docutils literal notranslate\"><span class=\"pre\">render_to_response</span></code> method.\nDefault is <a class=\"reference internal\" href=\"/en/4.0/ref/template-response/#django.template.response.TemplateResponse\" title=\"django.template.response.TemplateResponse\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code></a>. The template and context\nof <code class=\"docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code> instances can be altered later (e.g. in\n<a class=\"reference internal\" href=\"/en/4.0/topics/http/middleware/#template-response-middleware\"><span class=\"std std-ref\">template response middleware</span></a>).</p>\n<p>If you need custom template loading or custom context object\ninstantiation, create a <code class=\"docutils literal notranslate\"><span class=\"pre\">TemplateResponse</span></code> subclass and assign it to\n<code class=\"docutils literal notranslate\"><span class=\"pre\">response_class</span></code>.</p>\n</dd></dl>\n\n<dl class=\"py attribute\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.TemplateResponseMixin.content_type\">\n<span class=\"sig-name descname\"><span class=\"pre\">content_type</span></span><a class=\"heading-anchor\" href=\"#django.views.generic.base.TemplateResponseMixin.content_type\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>The content type to use for the response. <code class=\"docutils literal notranslate\"><span class=\"pre\">content_type</span></code> is passed\nas a keyword argument to <code class=\"docutils literal notranslate\"><span class=\"pre\">response_class</span></code>. Default is <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> –\nmeaning that Django uses <code class=\"docutils literal notranslate\"><span class=\"pre\">'text/html'</span></code>.</p>\n</dd></dl>\n\n<p><strong>Methods</strong></p>\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.TemplateResponseMixin.render_to_response\">\n<span class=\"sig-name descname\"><span class=\"pre\">render_to_response</span></span><span class=\"sig-paren\">(</span><em class=\"sig-param\"><span class=\"n\"><span class=\"pre\">context</span></span></em>, <em class=\"sig-param\"><span class=\"o\"><span class=\"pre\">**</span></span><span class=\"n\"><span class=\"pre\">response_kwargs</span></span></em><span class=\"sig-paren\">)</span><a class=\"heading-anchor\" href=\"#django.views.generic.base.TemplateResponseMixin.render_to_response\"><span class=\"visually-hidden\">Link to this definition</span><span aria-hidden=\"true\">#</span></a></dt>\n<dd><p>Returns a <code class=\"docutils literal notranslate\"><span class=\"pre\">self.response_class</span></code> instance.</p>\n<p>If any keyword arguments are provided, they will be passed to the\nconstructor of the response class.</p>\n<p>Calls <a class=\"reference internal\" href=\"#django.views.generic.base.TemplateResponseMixin.get_template_names\" title=\"django.views.generic.base.TemplateResponseMixin.get_template_names\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_template_names()</span></code></a> to obtain the list of template names\nthat will be searched looking for an existent template.</p>\n</dd></dl>\n\n<dl class=\"py method\">\n<dt class=\"sig sig-object py\" id=\"django.views.generic.base.TemplateResponseMixin.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.base.TemplateResponseMixin.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 template names to search for when rendering the\ntemplate. The first template that is found will be used.</p>\n<p>The default implementation will return a list containing\n<a class=\"reference internal\" href=\"#django.views.generic.base.TemplateResponseMixin.template_name\" title=\"django.views.generic.base.TemplateResponseMixin.template_name\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">template_name</span></code></a> (if it is specified).</p>\n</dd></dl>\n\n</dd></dl>\n\n</section>","rootId":"simple-mixins","toc":[{"title":"ContextMixin","anchor":"contextmixin","children":[]},{"title":"TemplateResponseMixin","anchor":"templateresponsemixin","children":[]}],"breadcrumbs":[{"docname":"ref/index","title":"API Reference","url":"/en/4.0/ref/"},{"docname":"ref/class-based-views/index","title":"Built-in class-based views API","url":"/en/4.0/ref/class-based-views/"},{"docname":"ref/class-based-views/mixins","title":"Class-based views mixins","url":"/en/4.0/ref/class-based-views/mixins/"}],"prev":{"docname":"ref/class-based-views/mixins","title":"Class-based views mixins","url":"/en/4.0/ref/class-based-views/mixins/"},"next":{"docname":"ref/class-based-views/mixins-single-object","title":"Single object mixins","url":"/en/4.0/ref/class-based-views/mixins-single-object/"},"formats":{"html":"/en/4.0/ref/class-based-views/mixins-simple/","markdown":"/en/4.0/ref/class-based-views/mixins-simple.md","json":"/en/4.0/ref/class-based-views/mixins-simple.json"},"source":"https://github.com/django/django/blob/stable/4.0.x/docs/ref/class-based-views/mixins-simple.txt","official":"https://docs.djangoproject.com/en/4.0/ref/class-based-views/mixins-simple/","inVersions":["dev","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","1.9","1.8"],"inLocales":["en","zh-hans","fr","ja","id","it","pt-br","ko","es","el","pl"]}