<!DOCTYPE html>

<html lang="en" data-content_root="../../">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Templates &#8212; Django 5.2.8 documentation</title>
    <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=34bb78ad" />
    <link rel="stylesheet" type="text/css" href="../../_static/default.css?v=bf4d74af" />
    <script src="../../_static/documentation_options.js?v=1e3ff871"></script>
    <script src="../../_static/doctools.js?v=9bcbadda"></script>
    <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
    <link rel="index" title="Index" href="../../genindex.html" />
    <link rel="search" title="Search" href="../../search.html" />
    <link rel="next" title="The Django template language" href="language.html" />
    <link rel="prev" title="Signals" href="../signals.html" />



 
<script src="../../templatebuiltins.js"></script>
<script>
(function($) {
    if (!django_template_builtins) {
       // templatebuiltins.js missing, do nothing.
       return;
    }
    $(document).ready(function() {
        // Hyperlink Django template tags and filters
        var base = "builtins.html";
        if (base == "#") {
            // Special case for builtins.html itself
            base = "";
        }
        // Tags are keywords, class '.k'
        $("div.highlight\\-html\\+django span.k").each(function(i, elem) {
             var tagname = $(elem).text();
             if ($.inArray(tagname, django_template_builtins.ttags) != -1) {
                 var fragment = tagname.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + tagname + "</a>");
             }
        });
        // Filters are functions, class '.nf'
        $("div.highlight\\-html\\+django span.nf").each(function(i, elem) {
             var filtername = $(elem).text();
             if ($.inArray(filtername, django_template_builtins.tfilters) != -1) {
                 var fragment = filtername.replace(/_/, '-');
                 $(elem).html("<a href='" + base + "#" + fragment + "'>" + filtername + "</a>");
             }
        });
    });
})(jQuery);</script>

  </head><body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../../index.html">Django 5.2.8 documentation</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../../index.html">Home</a>  |
        <a title="Table of contents" href="../../contents.html">Table of contents</a>  |
        <a title="Global index" href="../../genindex.html">Index</a>  |
        <a title="Module index" href="../../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="../signals.html" title="Signals">previous</a>
     |
    <a href="../index.html" title="API Reference" accesskey="U">up</a>
   |
    <a href="language.html" title="The Django template language">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="ref-templates-index">
            
  <section id="s-templates">
<span id="templates"></span><h1>Templates<a class="headerlink" href="#templates" title="Link to this heading">¶</a></h1>
<p>Django’s template engine provides a powerful mini-language for defining the
user-facing layer of your application, encouraging a clean separation of
application and presentation logic. Templates can be maintained by anyone with
an understanding of HTML; no knowledge of Python is required. For introductory
material, see <a class="reference internal" href="../../topics/templates.html"><span class="doc">Templates</span></a> topic guide.</p>
<div class="toctree-wrapper compound">
<ul>
<li class="toctree-l1"><a class="reference internal" href="language.html">The Django template language</a><ul>
<li class="toctree-l2"><a class="reference internal" href="language.html#templates">Templates</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#variables">Variables</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#filters">Filters</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#tags">Tags</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#comments">Comments</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#template-inheritance">Template inheritance</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#automatic-html-escaping">Automatic HTML escaping</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#accessing-method-calls">Accessing method calls</a></li>
<li class="toctree-l2"><a class="reference internal" href="language.html#custom-tag-and-filter-libraries">Custom tag and filter libraries</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="builtins.html">Built-in template tags and filters</a><ul>
<li class="toctree-l2"><a class="reference internal" href="builtins.html#built-in-tag-reference">Built-in tag reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="builtins.html#built-in-filter-reference">Built-in filter reference</a></li>
<li class="toctree-l2"><a class="reference internal" href="builtins.html#internationalization-tags-and-filters">Internationalization tags and filters</a></li>
<li class="toctree-l2"><a class="reference internal" href="builtins.html#other-tags-and-filters-libraries">Other tags and filters libraries</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="api.html">The Django template language: for Python programmers</a><ul>
<li class="toctree-l2"><a class="reference internal" href="api.html#overview">Overview</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#configuring-an-engine">Configuring an engine</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#loading-a-template">Loading a template</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#rendering-a-context">Rendering a context</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#playing-with-context-objects">Playing with <code class="docutils literal notranslate"><span class="pre">Context</span></code> objects</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#loading-templates">Loading templates</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#custom-loaders">Custom loaders</a></li>
<li class="toctree-l2"><a class="reference internal" href="api.html#template-origin">Template origin</a></li>
</ul>
</li>
</ul>
</div>
<div class="admonition seealso">
<p class="admonition-title">See also</p>
<p>For information on writing your own custom tags and filters, see
<a class="reference internal" href="../../howto/custom-template-tags.html"><span class="doc">How to create custom template tags and filters</span></a>.</p>
<p>To learn how to override templates in other Django applications, see
<a class="reference internal" href="../../howto/overriding-templates.html"><span class="doc">How to override templates</span></a>.</p>
</div>
</section>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
  <div>
    <h4>Previous topic</h4>
    <p class="topless"><a href="../signals.html"
                          title="previous chapter">Signals</a></p>
  </div>
  <div>
    <h4>Next topic</h4>
    <p class="topless"><a href="language.html"
                          title="next chapter">The Django template language</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>This Page</h3>
    <ul class="this-page-menu">
      <li><a href="../../_sources/ref/templates/index.txt"
            rel="nofollow">Show Source</a></li>
    </ul>
   </div>
<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">Quick search</h3>
    <div class="searchformwrapper">
    <form class="search" action="../../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="Go" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">Dec 02, 2025</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="../signals.html" title="Signals">previous</a>
     |
    <a href="../index.html" title="API Reference" accesskey="U">up</a>
   |
    <a href="language.html" title="The Django template language">next</a> &raquo;</div>
    </div>
  </div>

      <div class="clearer"></div>
    </div>
  </body>
</html>