{"title":"内置模板标签和过滤器","version":"6.1","locale":"zh-hans","docname":"ref/templates/builtins","url":"/zh-hans/6.1/ref/templates/builtins/","canonical":"https://djangodocs.dev/zh-hans/6.1/ref/templates/builtins/","summary":"本文档描述了 Django 内置的模板标签和过滤器。如果有的话，建议你使用 自动化文档 ，因为它也会包含安装的任何自定义标签或过滤器的文档。 内置标签参考 Link to this heading # autoescape Link to this heading # 控制当前的自动转义行为。该标签以 on 或 off…","html":"<h1>内置模板标签和过滤器<a class=\"heading-anchor\" href=\"#built-in-template-tags-and-filters\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h1>\n<p>本文档描述了 Django 内置的模板标签和过滤器。如果有的话，建议你使用 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/contrib/admin/admindocs/\"><span class=\"doc\">自动化文档</span></a>，因为它也会包含安装的任何自定义标签或过滤器的文档。</p>\n<section id=\"built-in-tag-reference\">\n<span id=\"ref-templates-builtins-tags\"></span><h2>内置标签参考<a class=\"heading-anchor\" href=\"#built-in-tag-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"autoescape\">\n<span id=\"std-templatetag-autoescape\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">autoescape</span></code><a class=\"heading-anchor\" href=\"#autoescape\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>控制当前的自动转义行为。该标签以 <code class=\"docutils literal notranslate\"><span class=\"pre\">on</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">off</span></code> 作为参数，决定块内是否有自动转义行为。此区块以 <code class=\"docutils literal notranslate\"><span class=\"pre\">endautoescape</span></code> 结束标签关闭。</p>\n<p>示例用法：</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=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">on</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">body</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>当自动转义生效时，从变量派生的所有内容在将结果放入输出之前都会应用 HTML 转义（但在应用任何过滤器之后）。这相当于手动对每个变量应用 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 过滤器。</p>\n<p>唯一的例外是已经标记为不需要转义的变量。变量可以通过填充变量的代码、应用 <a class=\"reference internal\" href=\"#std-templatefilter-safe\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">safe</span></code></a> 或 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 过滤器，或者因为它是以前的过滤器将字符串标记为 &quot;safe&quot; 的结果而被标记为 &quot;safe&quot;。</p>\n<p>在禁用自动转义的范围内，链式过滤器，包括 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a>，可能会导致意外的（但已记录的）结果，例如以下示例：</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=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">off</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">my_list</span><span class=\"o\">|</span><span class=\"nf\">join</span><span class=\"s2\">:&quot;, &quot;</span><span class=\"o\">|</span><span class=\"nf\">escape</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>上述代码将输出未经转义的 <code class=\"docutils literal notranslate\"><span class=\"pre\">my_list</span></code> 的连接元素。这是因为过滤器链序列首先在 <code class=\"docutils literal notranslate\"><span class=\"pre\">my_list</span></code> 上执行 <a class=\"reference internal\" href=\"#std-templatefilter-join\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">join</span></code></a> （由于 <code class=\"docutils literal notranslate\"><span class=\"pre\">autoescape</span></code> 为 <code class=\"docutils literal notranslate\"><span class=\"pre\">off</span></code>，不对每个项目应用转义），将结果标记为安全。随后，将安全结果提供给 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 过滤器，该过滤器不会应用第二轮转义。</p>\n<p>为了正确地转义序列中的每个元素，请使用 <a class=\"reference internal\" href=\"#std-templatefilter-escapeseq\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escapeseq</span></code></a> 过滤器：</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=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">off</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">my_list</span><span class=\"o\">|</span><span class=\"nf\">escapeseq</span><span class=\"o\">|</span><span class=\"nf\">join</span><span class=\"s2\">:&quot;, &quot;</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"block\">\n<span id=\"std-templatetag-block\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">block</span></code><a class=\"heading-anchor\" href=\"#block\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>定义一个可以被子模板覆盖的块。更多信息请参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/templates/language/#template-inheritance\"><span class=\"std std-ref\">模板继承</span></a>。</p>\n</section>\n<section id=\"comment\">\n<span id=\"std-templatetag-comment\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">comment</span></code><a class=\"heading-anchor\" href=\"#comment\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>忽略 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">comment</span> <span class=\"pre\">%}</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">endcomment</span> <span class=\"pre\">%}</span></code> 之间的所有内容。可以在第一个标签中插入一个可选的注释。例如，这在注释代码时很有用，可以记录代码被禁用的原因。</p>\n<p>示例用法：</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\">p</span><span class=\"p\">&gt;</span>Rendered text with <span class=\"cp\">{{</span> <span class=\"nv\">pub_date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;c&quot;</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">comment</span> <span class=\"s2\">&quot;Optional note&quot;</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>Commented out text with <span class=\"cp\">{{</span> <span class=\"nv\">create_date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;c&quot;</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endcomment</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">comment</span></code> 标签不能嵌套。</p>\n</section>\n<section id=\"csrf-token\">\n<span id=\"std-templatetag-csrf_token\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">csrf_token</span></code><a class=\"heading-anchor\" href=\"#csrf-token\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>这个标签用于 CSRF 保护，如 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/csrf/\"><span class=\"doc\">跨站点请求伪造</span></a> 的文档中所述。</p>\n</section>\n<section id=\"csp-nonce-attr\">\n<span id=\"std-templatetag-csp_nonce_attr\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">csp_nonce_attr</span></code><a class=\"heading-anchor\" href=\"#csp-nonce-attr\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.1\">\n<p class=\"version-note-title\">New in Django 6.1</p></aside>\n<p>When called without arguments, renders a <code class=\"docutils literal notranslate\"><span class=\"pre\">nonce=&quot;&lt;value&gt;&quot;</span></code> HTML attribute\nwhen the <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/templates/api/#django.template.context_processors.csp\" title=\"django.template.context_processors.csp\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">csp()</span></code></a> context processor is\nconfigured, and an empty string otherwise. Use it in <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;script&gt;</span></code> or\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;link&gt;</span></code> elements to allow them under a nonce-based Content Security Policy:</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\">script</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;/path/to/script.js&quot;</span> <span class=\"cp\">{%</span> <span class=\"k\">csp_nonce_attr</span> <span class=\"cp\">%}</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">script</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">link</span> <span class=\"na\">rel</span><span class=\"o\">=</span><span class=\"s\">&quot;stylesheet&quot;</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;/path/to/style.css&quot;</span> <span class=\"cp\">{%</span> <span class=\"k\">csp_nonce_attr</span> <span class=\"cp\">%}</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>When called with a <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/forms/media/#django.forms.Media\" title=\"django.forms.Media\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Media</span></code></a> object as the argument,\nrenders its assets with the CSP nonce applied to each <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;script&gt;</span></code> and\n<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;link&gt;</span></code> element:</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=\"cp\">{%</span> <span class=\"k\">csp_nonce_attr</span> <span class=\"nv\">form.media</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>In both forms, if the context processor is not configured, assets are rendered\nwithout a nonce attribute.</p>\n<p>See <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/csp/#csp-nonce\"><span class=\"std std-ref\">Nonce usage</span></a> for full configuration details.</p>\n</section>\n<section id=\"cycle\">\n<span id=\"std-templatetag-cycle\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">cycle</span></code><a class=\"heading-anchor\" href=\"#cycle\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>每次遇到这个标记时，都会产生一个参数。第一次遇到时产生第一个参数，第二次遇到时产生第二个参数，以此类推。一旦用尽所有参数，标签就会循环到第一个参数，并再次生成它。</p>\n<p>这个标签在循环中特别有用：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">o</span> <span class=\"k\">in</span> <span class=\"nv\">some_list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">tr</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;row1&#39;</span> <span class=\"s1\">&#39;row2&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n        ...\n    <span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>第一次迭代产生的 HTML 引用类 <code class=\"docutils literal notranslate\"><span class=\"pre\">row1</span></code>，第二次引用 <code class=\"docutils literal notranslate\"><span class=\"pre\">row2</span></code>，第三次再引用 <code class=\"docutils literal notranslate\"><span class=\"pre\">row1</span></code>，以此类推，每次循环迭代。</p>\n<p>你也可以使用变量。例如，如果你有两个模板变量，<code class=\"docutils literal notranslate\"><span class=\"pre\">rowvalue1</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">rowvalue2</span></code>，你可以像这样交替使用它们的值：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">o</span> <span class=\"k\">in</span> <span class=\"nv\">some_list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">tr</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"nv\">rowvalue1</span> <span class=\"nv\">rowvalue2</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n        ...\n    <span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Variables included in the cycle will be escaped. You can disable auto-escaping\nwith:</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">o</span> <span class=\"k\">in</span> <span class=\"nv\">some_list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">tr</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">off</span> <span class=\"cp\">%}{%</span> <span class=\"k\">cycle</span> <span class=\"nv\">rowvalue1</span> <span class=\"nv\">rowvalue2</span> <span class=\"cp\">%}{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n        ...\n    <span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>你可以混合使用变量和字符串：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">o</span> <span class=\"k\">in</span> <span class=\"nv\">some_list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">tr</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;row1&#39;</span> <span class=\"nv\">rowvalue2</span> <span class=\"s1\">&#39;row3&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n        ...\n    <span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>在某些情况下，你可能希望引用循环的当前值而不前进到下一个值。要实现这一点，可以使用 &quot;as&quot; 给 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">cycle</span> <span class=\"pre\">%}</span></code> 标签起一个名称，像这样：</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=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;row1&#39;</span> <span class=\"s1\">&#39;row2&#39;</span> <span class=\"k\">as</span> <span class=\"nv\">rowcolors</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>从那时起，你可以通过将周期名称作为上下文变量来引用，在模板中的任何位置插入当前周期的当前值。如果你想独立于原始的 <code class=\"docutils literal notranslate\"><span class=\"pre\">cycle</span></code> 标记将周期移到下一个值，你可以使用另一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">cycle</span></code> 标记并指定变量的名称。因此，下面的模板：</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\">tr</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;row1&#39;</span> <span class=\"s1\">&#39;row2&#39;</span> <span class=\"k\">as</span> <span class=\"nv\">rowcolors</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">rowcolors</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"nv\">rowcolors</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">rowcolors</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>将会输出：</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\">tr</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;row1&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;row1&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;row2&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">td</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;row2&quot;</span><span class=\"p\">&gt;</span>...<span class=\"p\">&lt;/</span><span class=\"nt\">td</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>你可以在一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">cycle</span></code> 标签中使用任意数量的值，用空格隔开。用单引号（<code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code>）或双引号（<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;</span></code>）括起来的值被视为字符串字面，而没有引号的值被视为模板变量。</p>\n<p>默认情况下，当你在循环标签中使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">as</span></code> 关键字时，使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">cycle</span> <span class=\"pre\">%}</span></code> 来启动循环的部分将产生循环中的第一个值。如果你希望在嵌套循环或包含的模板中使用该值，这可能会成为问题。如果你只想声明循环但不产生第一个值，你可以在标签的最后加上一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">silent</span></code> 关键字。例如：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">obj</span> <span class=\"k\">in</span> <span class=\"nv\">some_list</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;row1&#39;</span> <span class=\"s1\">&#39;row2&#39;</span> <span class=\"k\">as</span> <span class=\"nv\">rowcolors</span> <span class=\"nv\">silent</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">tr</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">rowcolors</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s2\">&quot;subtemplate.html&quot;</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;/</span><span class=\"nt\">tr</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>这将输出一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;tr&gt;</span></code> 元素的列表，其 <code class=\"docutils literal notranslate\"><span class=\"pre\">class</span></code> 在 <code class=\"docutils literal notranslate\"><span class=\"pre\">row1</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">row2</span></code> 之间交替出现。子模板在其上下文中可以访问 <code class=\"docutils literal notranslate\"><span class=\"pre\">rowcolors</span></code>，其值将与包围它的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;tr&gt;</span></code> 的类相匹配。如果省略 <code class=\"docutils literal notranslate\"><span class=\"pre\">silent</span></code> 关键字，<code class=\"docutils literal notranslate\"><span class=\"pre\">row1</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">row2</span></code> 将作为普通文本在 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;tr&gt;</span></code> 元素之外发出。</p>\n<p>当在循环定义上使用静默关键字时，静默会自动应用于该特定循环标记的所有后续使用。即使第二次调用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">cycle</span> <span class=\"pre\">%}</span></code> 没有指定 <code class=\"docutils literal notranslate\"><span class=\"pre\">silent</span></code>，以下模板也会输出 <em>nothing</em>：</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=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;row1&#39;</span> <span class=\"s1\">&#39;row2&#39;</span> <span class=\"k\">as</span> <span class=\"nv\">rowcolors</span> <span class=\"nv\">silent</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"nv\">rowcolors</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>你可以使用 <a class=\"reference internal\" href=\"#std-templatetag-resetcycle\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">resetcycle</span></code></a> 标签使 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">cycle</span> <span class=\"pre\">%}</span></code> 标签在下次遇到时从第一个值重新开始。</p>\n</section>\n<section id=\"debug\">\n<span id=\"std-templatetag-debug\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">debug</span></code><a class=\"heading-anchor\" href=\"#debug\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>在 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-DEBUG\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DEBUG</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code> 时，输出大量的调试信息，包括当前上下文和导入的模块。<code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">debug</span> <span class=\"pre\">%}</span></code> 在这种情况下不会输出任何内容。</p>\n</section>\n<section id=\"extends\">\n<span id=\"std-templatetag-extends\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">extends</span></code><a class=\"heading-anchor\" href=\"#extends\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>表示该模板扩展了一个父模板。</p>\n<p>这个标签有两种使用方式：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">extends</span> <span class=\"pre\">&quot;base.html&quot;</span> <span class=\"pre\">%}</span></code> （带引号）使用字面值 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;base.html&quot;</span></code> 作为要扩展的父模板的名称。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">extends</span> <span class=\"pre\">variable</span> <span class=\"pre\">%}</span></code> 使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">variable</span></code> 的值。如果变量的值是一个字符串，Django 将使用这个字符串作为父模板的名称。如果变量的值是一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">Template</span></code> 对象，Django 将使用该对象作为父模板。</p></li>\n</ul>\n<p>更多内容请参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/templates/language/#template-inheritance\"><span class=\"std std-ref\">模板继承</span></a> 文档.</p>\n<p>通常，模板名称相对于模板加载器的根目录。字符串参数也可以是以 <code class=\"docutils literal notranslate\"><span class=\"pre\">./</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">../</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>dir1/\n    template.html\n    base2.html\n    my/\n        base3.html\nbase1.html\n</code></pre></div>\n<p>在 <code class=\"docutils literal notranslate\"><span class=\"pre\">template.html</span></code> 中，以下路径将是有效的：</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=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;./base2.html&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;../base1.html&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">extends</span> <span class=\"s2\">&quot;./my/base3.html&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"filter\">\n<span id=\"std-templatetag-filter\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">filter</span></code><a class=\"heading-anchor\" href=\"#filter\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>通过一个或多个过滤器过滤块的内容。可以用管道指定多个过滤器，过滤器可以有参数，就像变量语法一样。</p>\n<p>请注意，该块包括 <code class=\"docutils literal notranslate\"><span class=\"pre\">filter</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">endfilter</span></code> 标签之间的 <em>所有</em> 文本。</p>\n<p>示例用法：</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=\"cp\">{%</span> <span class=\"k\">filter</span> <span class=\"nf\">force_escape</span><span class=\"o\">|</span><span class=\"nf\">lower</span> <span class=\"cp\">%}</span>\n    This text will be HTML-escaped, and will appear in all lowercase.\n<span class=\"cp\">{%</span> <span class=\"k\">endfilter</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p><a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 和 <a class=\"reference internal\" href=\"#std-templatefilter-safe\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">safe</span></code></a> 过滤器是不可接受的参数。取而代之的是，使用 <a class=\"reference internal\" href=\"#std-templatetag-autoescape\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">autoescape</span></code></a> 标签来管理模板代码块的自动转义。</p>\n</aside>\n</section>\n<section id=\"firstof\">\n<span id=\"std-templatetag-firstof\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">firstof</span></code><a class=\"heading-anchor\" href=\"#firstof\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>输出第一个不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">false</span></code> 的参数变量（即存在、不为空、不是一个错误的布尔值，也不是一个零的数值）。如果所有传递的变量都是 <code class=\"docutils literal notranslate\"><span class=\"pre\">false</span></code>，则不输出任何内容。</p>\n<p>示例用法：</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=\"cp\">{%</span> <span class=\"k\">firstof</span> <span class=\"nv\">var1</span> <span class=\"nv\">var2</span> <span class=\"nv\">var3</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>这相当于：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">var1</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">var1</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">elif</span> <span class=\"nv\">var2</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">var2</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">elif</span> <span class=\"nv\">var3</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">var3</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>你还可以使用一个字面字符串作为备用值，以防传递的所有变量都为 False：</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=\"cp\">{%</span> <span class=\"k\">firstof</span> <span class=\"nv\">var1</span> <span class=\"nv\">var2</span> <span class=\"nv\">var3</span> <span class=\"s2\">&quot;fallback value&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>这个标签会自动转义变量的值。你可以使用以下方式禁用自动转义：</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=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">off</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">firstof</span> <span class=\"nv\">var1</span> <span class=\"nv\">var2</span> <span class=\"nv\">var3</span> <span class=\"s2\">&quot;&lt;strong&gt;fallback value&lt;/strong&gt;&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>或者如果只有某些变量应该被转义，你可以使用：</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=\"cp\">{%</span> <span class=\"k\">firstof</span> <span class=\"nv\">var1</span> <span class=\"nv\">var2</span><span class=\"o\">|</span><span class=\"nf\">safe</span> <span class=\"nv\">var3</span> <span class=\"s2\">&quot;&lt;strong&gt;fallback value&lt;/strong&gt;&quot;</span><span class=\"o\">|</span><span class=\"nf\">safe</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>你可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">firstof</span> <span class=\"pre\">var1</span> <span class=\"pre\">var2</span> <span class=\"pre\">var3</span> <span class=\"pre\">as</span> <span class=\"pre\">value</span> <span class=\"pre\">%}</span></code> 的语法将输出结果存储在一个变量中。</p>\n</section>\n<section id=\"for\">\n<span id=\"std-templatetag-for\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code><a class=\"heading-anchor\" href=\"#for\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>循环遍历数组中的每个项目，并将项目作为上下文变量可用。例如，要显示提供在 <code class=\"docutils literal notranslate\"><span class=\"pre\">athlete_list</span></code> 中的运动员列表：</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\">athlete</span> <span class=\"k\">in</span> <span class=\"nv\">athlete_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\">athlete.name</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>你可以通过使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">for</span> <span class=\"pre\">obj</span> <span class=\"pre\">in</span> <span class=\"pre\">list</span> <span class=\"pre\">reversed</span> <span class=\"pre\">%}</span></code> 来反向循环一个列表。</p>\n<p>如果需要循环遍历一个列表的列表，你可以将每个子列表中的值解包成单独的变量。例如，如果你的上下文包含一个名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">points</span></code> 的 (x,y) 坐标列表，你可以使用以下方法输出点的列表：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">x</span><span class=\"o\">,</span> <span class=\"nv\">y</span> <span class=\"k\">in</span> <span class=\"nv\">points</span> <span class=\"cp\">%}</span>\n    There is a point at <span class=\"cp\">{{</span> <span class=\"nv\">x</span> <span class=\"cp\">}}</span>,<span class=\"cp\">{{</span> <span class=\"nv\">y</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>如果需要访问字典中的项目，这也可能很有用。例如，如果你的上下文包含一个字典 <code class=\"docutils literal notranslate\"><span class=\"pre\">data</span></code>，以下内容将显示字典的键和值：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">key</span><span class=\"o\">,</span> <span class=\"nv\">value</span> <span class=\"k\">in</span> <span class=\"nv\">data.items</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">key</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">value</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>请记住，对于点运算符来说，字典键查询优先于方法查询。因此，如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">data</span></code> 字典中包含一个名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">'items'</span></code> 的键，<code class=\"docutils literal notranslate\"><span class=\"pre\">data.items</span></code> 将返回 <code class=\"docutils literal notranslate\"><span class=\"pre\">data['items']`</span></code> 而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">data.items()</span></code>。如果你想在模板中使用这些方法，避免添加像字典方法一样命名的键（<code class=\"docutils literal notranslate\"><span class=\"pre\">items</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">values</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">keys</span></code> 等）。在 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/templates/language/#template-variables\"><span class=\"std std-ref\">模板变量的文档</span></a> 中阅读更多关于点运算符的查找顺序。</p>\n<p>for 循环设置了一组可以在循环体内直接使用的变量：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>变量名</p></th>\n<th class=\"head\"><p>描述</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.counter</span></code></p></td>\n<td><p>循环计数器，表示当前循环的索引（从 <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code> 开始）。</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.counter0</span></code></p></td>\n<td><p>循环计数器，表示当前循环的索引（从 <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code> 开始）。</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.revcounter</span></code></p></td>\n<td><p>反向循环计数器（以最后一次循环为 <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code>，反向计数）。</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.revcounter0</span></code></p></td>\n<td><p>反向循环计数器（以最后一次循环为 <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>，反向计数）。</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.first</span></code></p></td>\n<td><p>当前循环为首个循环时，该变量为 True</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.last</span></code></p></td>\n<td><p>当前循环为最后一个循环时，该变量为 True</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.length</span></code></p></td>\n<td><p>The length of the loop</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.parentloop</span></code></p></td>\n<td><p>在嵌套循环中，指向当前循环的上级循环</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>The variable <code class=\"docutils literal notranslate\"><span class=\"pre\">forloop.length</span></code> was added.</p>\n</aside>\n</section>\n<section id=\"for-empty\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code> ... <code class=\"docutils literal notranslate\"><span class=\"pre\">empty</span></code><a class=\"heading-anchor\" href=\"#for-empty\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">for</span></code> 标签可以带有一个可选的 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">empty</span> <span class=\"pre\">%}</span></code> 子句，如果给定的数组为空或找不到，则显示其文本：</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\">athlete</span> <span class=\"k\">in</span> <span class=\"nv\">athlete_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\">athlete.name</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\">empty</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>Sorry, no athletes in this list.<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<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\">if</span> <span class=\"nv\">athlete_list</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">athlete</span> <span class=\"k\">in</span> <span class=\"nv\">athlete_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\">athlete.name</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=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>Sorry, no athletes in this list.<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n  <span class=\"cp\">{%</span> <span class=\"k\">endif</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</section>\n<section id=\"if\">\n<span id=\"std-templatetag-if\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">if</span></code><a class=\"heading-anchor\" href=\"#if\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">if</span> <span class=\"pre\">%}</span></code> 标签评估一个变量，如果该变量为 &quot;true&quot;（即存在，不为空，并且不是假布尔值），则输出块的内容：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">athlete_list</span> <span class=\"cp\">%}</span>\n    Number of athletes: <span class=\"cp\">{{</span> <span class=\"nv\">athlete_list</span><span class=\"o\">|</span><span class=\"nf\">length</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">elif</span> <span class=\"nv\">athlete_in_locker_room_list</span> <span class=\"cp\">%}</span>\n    Athletes should be out of the locker room soon!\n<span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n    No athletes.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>在上面的例子中, 如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">athlete_list</span></code> 不是空的, 那么变量 <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">athlete_list|length</span> <span class=\"pre\">}}</span></code> 就会被显示出来.</p>\n<p>正如你所看到的，<code class=\"docutils literal notranslate\"><span class=\"pre\">if</span></code> 标签可能带有一个或多个 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">elif</span> <span class=\"pre\">%}</span></code> 分支，以及一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">else</span> <span class=\"pre\">%}</span></code> 分支。当 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">else</span> <span class=\"pre\">%}</span></code> 之前的所有分支条件都不满足时，<code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">else</span> <span class=\"pre\">%}</span></code> 分支的内容会被显示出来。所有的分支都是可选的。</p>\n<section id=\"boolean-operators\">\n<h4>布尔操作<a class=\"heading-anchor\" href=\"#boolean-operators\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p><a class=\"reference internal\" href=\"#std-templatetag-if\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">if</span></code></a> 标签可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">and</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">or</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">not</span></code> 来测试多个变量或否定给定变量：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">athlete_list</span> <span class=\"k\">and</span> <span class=\"nv\">coach_list</span> <span class=\"cp\">%}</span>\n    Both athletes and coaches are available.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"k\">not</span> <span class=\"nv\">athlete_list</span> <span class=\"cp\">%}</span>\n    There are no athletes.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">athlete_list</span> <span class=\"k\">or</span> <span class=\"nv\">coach_list</span> <span class=\"cp\">%}</span>\n    There are some athletes or some coaches.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"k\">not</span> <span class=\"nv\">athlete_list</span> <span class=\"k\">or</span> <span class=\"nv\">coach_list</span> <span class=\"cp\">%}</span>\n    There are no athletes or there are some coaches.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">athlete_list</span> <span class=\"k\">and</span> <span class=\"k\">not</span> <span class=\"nv\">coach_list</span> <span class=\"cp\">%}</span>\n    There are some athletes and absolutely no coaches.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>在同一个标签中同时使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">and</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">or</span></code> 子句是允许的，其中 <code class=\"docutils literal notranslate\"><span class=\"pre\">and</span></code> 的优先级高于 <code class=\"docutils literal notranslate\"><span class=\"pre\">or</span></code>，例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">athlete_list</span> <span class=\"k\">and</span> <span class=\"nv\">coach_list</span> <span class=\"k\">or</span> <span class=\"nv\">cheerleader_list</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>将被解释为：</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\">if</span> <span class=\"p\">(</span><span class=\"n\">athlete_list</span> <span class=\"ow\">and</span> <span class=\"n\">coach_list</span><span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"n\">cheerleader_list</span><span class=\"p\">:</span>\n    <span class=\"o\">...</span>\n</code></pre></div>\n<p>在 <a class=\"reference internal\" href=\"#std-templatetag-if\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">if</span></code></a> 标签中使用实际的括号是无效的语法。如果需要小括号来表示优先级，应使用嵌套的 <a class=\"reference internal\" href=\"#std-templatetag-if\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">if</span></code></a> 标签。</p>\n<p><a class=\"reference internal\" href=\"#std-templatetag-if\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">if</span></code></a> 标签也可以使用运算符 <code class=\"docutils literal notranslate\"><span class=\"pre\">==</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">!=</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&gt;</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;=</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&gt;=</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">in</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">not</span> <span class=\"pre\">in</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">is</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">`is</span> <span class=\"pre\">not</span></code>，其作用如下：</p>\n<section id=\"operator\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">==</span></code> 运算符<a class=\"heading-anchor\" href=\"#operator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>相等。例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"o\">==</span> <span class=\"s2\">&quot;x&quot;</span> <span class=\"cp\">%}</span>\n  This appears if variable somevar equals the string &quot;x&quot;\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"id1\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">!=</span></code> 运算符<a class=\"heading-anchor\" href=\"#id1\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>不相等。例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"o\">!=</span> <span class=\"s2\">&quot;x&quot;</span> <span class=\"cp\">%}</span>\n  This appears if variable somevar does not equal the string &quot;x&quot;,\n  or if somevar is not found in the context\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"id2\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;</span></code> 运算符<a class=\"heading-anchor\" href=\"#id2\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>小于。例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"o\">&lt;</span> <span class=\"m\">100</span> <span class=\"cp\">%}</span>\n  This appears if variable somevar is less than 100.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"id3\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">&gt;</span></code> 运算符<a class=\"heading-anchor\" href=\"#id3\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>大于。例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"o\">&gt;</span> <span class=\"m\">0</span> <span class=\"cp\">%}</span>\n  This appears if variable somevar is greater than 0.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"id4\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;=</span></code> 运算符<a class=\"heading-anchor\" href=\"#id4\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>小于等于。例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"o\">&lt;=</span> <span class=\"m\">100</span> <span class=\"cp\">%}</span>\n  This appears if variable somevar is less than 100 or equal to 100.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"id5\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">&gt;=</span></code> 运算符<a class=\"heading-anchor\" href=\"#id5\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>大于等于。例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"o\">&gt;=</span> <span class=\"m\">1</span> <span class=\"cp\">%}</span>\n  This appears if variable somevar is greater than 1 or equal to 1.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"in-operator\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">in</span></code> 运算符<a class=\"heading-anchor\" href=\"#in-operator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>包含在内。这个运算符由许多 Python 容器支持，用于测试给定的值是否在容器中。以下是一些关于 <code class=\"docutils literal notranslate\"><span class=\"pre\">x</span> <span class=\"pre\">in</span> <span class=\"pre\">y</span></code> 如何被解释的示例：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"s2\">&quot;bc&quot;</span> <span class=\"k\">in</span> <span class=\"s2\">&quot;abcdef&quot;</span> <span class=\"cp\">%}</span>\n  This appears since &quot;bc&quot; is a substring of &quot;abcdef&quot;\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"s2\">&quot;hello&quot;</span> <span class=\"k\">in</span> <span class=\"nv\">greetings</span> <span class=\"cp\">%}</span>\n  If greetings is a list or set, one element of which is the string\n  &quot;hello&quot;, this will appear.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">user</span> <span class=\"k\">in</span> <span class=\"nv\">users</span> <span class=\"cp\">%}</span>\n  If users is a QuerySet, this will appear if user is an\n  instance that belongs to the QuerySet.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"not-in-operator\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">not</span> <span class=\"pre\">in</span></code> 操作符<a class=\"heading-anchor\" href=\"#not-in-operator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>不包含在其中。这是 <code class=\"docutils literal notranslate\"><span class=\"pre\">in</span></code> 运算符的取反。</p>\n</section>\n<section id=\"is-operator\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">is</span></code> 运算符<a class=\"heading-anchor\" href=\"#is-operator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>对象标识。测试两个值是否是同一个对象。示例：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"k\">is</span> <span class=\"nf\">True</span> <span class=\"cp\">%}</span>\n  This appears if and only if somevar is True.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"k\">is</span> <span class=\"nf\">None</span> <span class=\"cp\">%}</span>\n  This appears if somevar is None, or if somevar is not found in the context.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"is-not-operator\">\n<h5><code class=\"docutils literal notranslate\"><span class=\"pre\">is</span> <span class=\"pre\">not</span></code> 运算符<a class=\"heading-anchor\" href=\"#is-not-operator\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h5>\n<p>否定的对象标识。测试两个值是否不是同一个对象。这是 <code class=\"docutils literal notranslate\"><span class=\"pre\">is</span></code> 运算符的否定。示例：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"k\">is</span> <span class=\"k\">not</span> <span class=\"nf\">True</span> <span class=\"cp\">%}</span>\n  This appears if somevar is not True, or if somevar is not found in the\n  context.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">somevar</span> <span class=\"k\">is</span> <span class=\"k\">not</span> <span class=\"nf\">None</span> <span class=\"cp\">%}</span>\n  This appears if and only if somevar is not None.\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"filters\">\n<h4>过滤器<a class=\"heading-anchor\" href=\"#filters\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>你还可以在 <a class=\"reference internal\" href=\"#std-templatetag-if\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">if</span></code></a> 表达式中使用过滤器。例如：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">messages</span><span class=\"o\">|</span><span class=\"nf\">length</span> <span class=\"o\">&gt;=</span> <span class=\"m\">100</span> <span class=\"cp\">%}</span>\n   You have lots of messages today!\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"complex-expressions\">\n<h4>复合表达式<a class=\"heading-anchor\" href=\"#complex-expressions\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>以上所有内容都可以组合成复合表达式。对于这样的表达式，了解表达式计算时运算符的分组方式——也就是优先规则，可能很重要。运算符的优先级，从低到高，如下所示：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">or</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">and</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">not</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">in</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">==</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">!=</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&gt;</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;=</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&gt;=</span></code></p></li>\n</ul>\n<p>（这与 Python 完全一致）。因此，例如，以下复杂的 <a class=\"reference internal\" href=\"#std-templatetag-if\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">if</span></code></a> 标签：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">a</span> <span class=\"o\">==</span> <span class=\"nv\">b</span> <span class=\"k\">or</span> <span class=\"nv\">c</span> <span class=\"o\">==</span> <span class=\"nv\">d</span> <span class=\"k\">and</span> <span class=\"nv\">e</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>...将被解释为：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"p\">(</span><span class=\"n\">a</span> <span class=\"o\">==</span> <span class=\"n\">b</span><span class=\"p\">)</span> <span class=\"ow\">or</span> <span class=\"p\">((</span><span class=\"n\">c</span> <span class=\"o\">==</span> <span class=\"n\">d</span><span class=\"p\">)</span> <span class=\"ow\">and</span> <span class=\"n\">e</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>如果你需要不同的优先级，你需要使用嵌套的 <a class=\"reference internal\" href=\"#std-templatetag-if\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">if</span></code></a> 标签。有时，为了不了解优先规则的人，这样做还是比较清楚的。</p>\n<p>比较运算符不能像在 Python 或数学表示法中那样“链接”。例如，而不是使用：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">a</span> <span class=\"o\">&gt;</span> <span class=\"nv\">b</span> <span class=\"o\">&gt;</span> <span class=\"nv\">c</span> <span class=\"cp\">%}</span>  (WRONG)\n</code></pre></div>\n<p>你应该使用：</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=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">a</span> <span class=\"o\">&gt;</span> <span class=\"nv\">b</span> <span class=\"k\">and</span> <span class=\"nv\">b</span> <span class=\"o\">&gt;</span> <span class=\"nv\">c</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"ifchanged\">\n<span id=\"std-templatetag-ifchanged\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ifchanged</span></code><a class=\"heading-anchor\" href=\"#ifchanged\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>检查一个值是否在循环的最后一次迭代中发生了变化。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">ifchanged</span> <span class=\"pre\">%}</span></code> 块标签用于循环中。它有两种可能的用法。</p>\n<ol class=\"arabic\">\n<li><p>检查自己呈现的内容与之前的状态，并仅在内容发生更改时显示内容。例如，这显示一个日期列表，仅在月份更改时显示月份：</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>Archive for <span class=\"cp\">{{</span> <span class=\"nv\">year</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">date</span> <span class=\"k\">in</span> <span class=\"nv\">days</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">ifchanged</span> <span class=\"cp\">%}</span><span class=\"p\">&lt;</span><span class=\"nt\">h3</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=\"s2\">:&quot;F&quot;</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h3</span><span class=\"p\">&gt;</span><span class=\"cp\">{%</span> <span class=\"k\">endifchanged</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">date</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;M/d&quot;</span><span class=\"o\">|</span><span class=\"nf\">lower</span> <span class=\"cp\">}}</span><span class=\"s\">/&quot;</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=\"s2\">:&quot;j&quot;</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</li>\n<li><p>如果给定一个或多个变量，请检查是否有任何变量发生了变化。例如，以下示例在日期发生变化时显示日期，同时在小时或日期发生变化时显示小时：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">date</span> <span class=\"k\">in</span> <span class=\"nv\">days</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">ifchanged</span> <span class=\"nv\">date.date</span> <span class=\"cp\">%}</span> <span class=\"cp\">{{</span> <span class=\"nv\">date.date</span> <span class=\"cp\">}}</span> <span class=\"cp\">{%</span> <span class=\"k\">endifchanged</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">ifchanged</span> <span class=\"nv\">date.hour</span> <span class=\"nv\">date.date</span> <span class=\"cp\">%}</span>\n        <span class=\"cp\">{{</span> <span class=\"nv\">date.hour</span> <span class=\"cp\">}}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endifchanged</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</li>\n</ol>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">ifchanged</span></code> 标签还可以带有可选的 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">else</span> <span class=\"pre\">%}</span></code> 子句，如果值没有发生变化，则将显示该子句：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">match</span> <span class=\"k\">in</span> <span class=\"nv\">matches</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">style</span><span class=\"o\">=</span><span class=\"s\">&quot;background-color:</span>\n<span class=\"s\">        </span><span class=\"cp\">{%</span> <span class=\"k\">ifchanged</span> <span class=\"nv\">match.ballot_id</span> <span class=\"cp\">%}</span>\n<span class=\"s\">            </span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s2\">&quot;red&quot;</span> <span class=\"s2\">&quot;blue&quot;</span> <span class=\"cp\">%}</span>\n<span class=\"s\">        </span><span class=\"cp\">{%</span> <span class=\"k\">else</span> <span class=\"cp\">%}</span>\n<span class=\"s\">            gray</span>\n<span class=\"s\">        </span><span class=\"cp\">{%</span> <span class=\"k\">endifchanged</span> <span class=\"cp\">%}</span>\n<span class=\"s\">    &quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">match</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"include\">\n<span id=\"std-templatetag-include\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">include</span></code><a class=\"heading-anchor\" href=\"#include\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>加载一个模板，并在当前上下文中进行渲染。这是一种在模板中 “包含” 其他模板的方式。</p>\n<p>The template name can either be a variable or a hardcoded (quoted) string,\nin either single or double quotes.</p>\n<p>这个示例包含了模板 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;foo/bar.html&quot;</span></code> 的内容：</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=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s2\">&quot;foo/bar.html&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>通常模板名称是相对于模板加载器的根目录而言的。字符串参数也可以是以 <code class=\"docutils literal notranslate\"><span class=\"pre\">./</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">../</span></code> 开头的相对路径，如 <a class=\"reference internal\" href=\"#std-templatetag-extends\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">extends</span></code></a> 标签所述。</p>\n<p>这个示例包含了模板名称存储在变量 <code class=\"docutils literal notranslate\"><span class=\"pre\">template_name</span></code> 中的模板的内容：</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=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"nv\">template_name</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>变量也可以是任何有 <code class=\"docutils literal notranslate\"><span class=\"pre\">render()</span></code> 方法并接受上下文的对象。这允许你在你的上下文中引用一个编译的 <code class=\"docutils literal notranslate\"><span class=\"pre\">Template</span></code>。</p>\n<p>此外，该变量可以是模板名称的迭代，在这种情况下，将使用第一个可以加载的模板，如 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/templates/#django.template.loader.select_template\" title=\"django.template.loader.select_template\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">select_template()</span></code></a>。</p>\n<p>一个被包含的模板会在包含它的模板的上下文中呈现。这个例子产生的输出是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Hello,</span> <span class=\"pre\">John!&quot;</span></code>。</p>\n<ul>\n<li><p>上下文：变量 <code class=\"docutils literal notranslate\"><span class=\"pre\">person</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;John&quot;</span></code>，变量 <code class=\"docutils literal notranslate\"><span class=\"pre\">greeting</span></code> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Hello&quot;</span></code>。</p></li>\n<li><p>模板：</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=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s2\">&quot;name_snippet.html&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">name_snippet.html</span></code> 模板：</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=\"cp\">{{</span> <span class=\"nv\">greeting</span> <span class=\"cp\">}}</span>, <span class=\"cp\">{{</span> <span class=\"nv\">person</span><span class=\"o\">|</span><span class=\"nf\">default</span><span class=\"s2\">:&quot;friend&quot;</span> <span class=\"cp\">}}</span>!\n</code></pre></div>\n</li>\n</ul>\n<p>你可以使用关键字参数向模板传递额外的上下文：</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=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s2\">&quot;name_snippet.html&quot;</span> <span class=\"k\">with</span> <span class=\"nv\">person</span><span class=\"o\">=</span><span class=\"s2\">&quot;Jane&quot;</span> <span class=\"nv\">greeting</span><span class=\"o\">=</span><span class=\"s2\">&quot;Hello&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>如果你想仅使用提供的变量（甚至不使用任何变量）来渲染上下文，请使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">only</span></code> 选项。不会提供其他变量给包含的模板：</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=\"cp\">{%</span> <span class=\"k\">include</span> <span class=\"s2\">&quot;name_snippet.html&quot;</span> <span class=\"k\">with</span> <span class=\"nv\">greeting</span><span class=\"o\">=</span><span class=\"s2\">&quot;Hi&quot;</span> <span class=\"nv\">only</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p><a class=\"reference internal\" href=\"#std-templatetag-include\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">include</span></code></a> 标签应被视为 “渲染这个子模板并包含 HTML” 的实现，而不是 “解析这个子模板并包含其内容，就像它是父模板的一部分一样”。这意味着，包含的模板之间没有共享状态——每个包含都是一个完全独立的渲染过程。</p>\n<p>块在被包含之前会被执行。这意味着一个包含了另一个模板块的模板将包含 <em>已经被执行和渲染</em> 的块，而不是可以被覆盖的块，例如，一个扩展模板。</p>\n</aside>\n</section>\n<section id=\"load\">\n<span id=\"std-templatetag-load\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">load</span></code><a class=\"heading-anchor\" href=\"#load\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>加载一个自定义模板标签集。</p>\n<p>例如，以下模板将加载位于包 <code class=\"docutils literal notranslate\"><span class=\"pre\">package</span></code> 中的 <code class=\"docutils literal notranslate\"><span class=\"pre\">somelibrary</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">otherlibrary</span></code> 中注册的所有标签和过滤器：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">somelibrary</span> <span class=\"nv\">package.otherlibrary</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>你还可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">from</span></code> 参数有选择地从库中加载单个过滤器或标签。在这个例子中，将从 <code class=\"docutils literal notranslate\"><span class=\"pre\">somelibrary</span></code> 中加载名为 <code class=\"docutils literal notranslate\"><span class=\"pre\">foo</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">bar</span></code> 的模板标签/过滤器：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">foo</span> <span class=\"nv\">bar</span> <span class=\"nv\">from</span> <span class=\"nv\">somelibrary</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>更多信息请参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/howto/custom-template-tags/\"><span class=\"doc\">自定义标签和过滤器库</span></a>。</p>\n</section>\n<section id=\"lorem\">\n<span id=\"std-templatetag-lorem\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">lorem</span></code><a class=\"heading-anchor\" href=\"#lorem\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>显示随机的 “经验之谈” 拉丁文文本。这对于在模板中提供样本数据很有用。</p>\n<p>用法：</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=\"cp\">{%</span> <span class=\"k\">lorem</span> <span class=\"o\">[</span><span class=\"nv\">count</span><span class=\"o\">]</span> <span class=\"o\">[</span><span class=\"nv\">method</span><span class=\"o\">]</span> <span class=\"o\">[</span><span class=\"nv\">random</span><span class=\"o\">]</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">lorem</span> <span class=\"pre\">%}</span></code> 标签可以使用零、一、二或三个参数。这些参数是：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>参数</p></th>\n<th class=\"head\"><p>描述</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">count</span></code></p></td>\n<td><p>一个数字（或变量），包含要生成的段落或字数（默认为 1）。</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">method</span></code></p></td>\n<td><p>字词为 <code class=\"docutils literal notranslate\"><span class=\"pre\">w</span></code>，HTML 段落为 <code class=\"docutils literal notranslate\"><span class=\"pre\">p</span></code>，纯文本段落块为 <code class=\"docutils literal notranslate\"><span class=\"pre\">b</span></code> （默认为 <code class=\"docutils literal notranslate\"><span class=\"pre\">b</span></code>）。</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">random</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">random</span></code> 一词，如果给定，在生成文本时不使用普通段落（“Lorem ipsum dolor sit amet.”）。</p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>举例：</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">lorem</span> <span class=\"pre\">%}</span></code> 将输出常见的 “经验之谈” 段落。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">lorem</span> <span class=\"pre\">3</span> <span class=\"pre\">p</span> <span class=\"pre\">%}</span></code> 将输出普通的 “经验之谈” 段落和两个随机段落，每个段落用 HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;p&gt;</span></code> 标签包装。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">lorem</span> <span class=\"pre\">2</span> <span class=\"pre\">w</span> <span class=\"pre\">random</span> <span class=\"pre\">%}</span></code> 将随机输出两个拉丁语单词。</p></li>\n</ul>\n</section>\n<section id=\"now\">\n<span id=\"std-templatetag-now\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">now</span></code><a class=\"heading-anchor\" href=\"#now\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>显示当前日期和／或时间，根据给定的字符串使用格式。这些字符串可以包含格式指定符，如 <a class=\"reference internal\" href=\"#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 过滤器部分所述。</p>\n<p>例如：</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>It is <span class=\"cp\">{%</span> <span class=\"k\">now</span> <span class=\"s2\">&quot;jS F Y H:i&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>请注意，如果要使用“原始”值，可以对格式字符串进行反斜杠转义。在这个示例中，&quot;o&quot; 和 &quot;f&quot; 都进行了反斜杠转义，因为否则它们分别是显示年份和时间的格式字符串：</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>It is the <span class=\"cp\">{%</span> <span class=\"k\">now</span> <span class=\"s2\">&quot;jS \\o\\f F&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>这样就会显示为 “It is the 4th of September”。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>传递的格式也可以是预定义的格式之一：<a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-SHORT_DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATE_FORMAT</span></code></a> 或 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-SHORT_DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATETIME_FORMAT</span></code></a>。预定义的格式可能会根据当前的区域设置以及是否启用 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/formatting/\"><span class=\"doc\">本地格式化</span></a> 而有所不同，例如：</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>It is <span class=\"cp\">{%</span> <span class=\"k\">now</span> <span class=\"s2\">&quot;SHORT_DATETIME_FORMAT&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</aside>\n<p>你还可以使用语法 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">now</span> <span class=\"pre\">&quot;Y&quot;</span> <span class=\"pre\">as</span> <span class=\"pre\">current_year</span> <span class=\"pre\">%}</span></code> 将输出（作为字符串）存储在变量中。这在你想在模板标签内使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">now</span> <span class=\"pre\">%}</span></code>，如 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/translation/#std-templatetag-blocktranslate\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">blocktranslate</span></code></a> 这样的标签时非常有用：</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=\"cp\">{%</span> <span class=\"k\">now</span> <span class=\"s2\">&quot;Y&quot;</span> <span class=\"k\">as</span> <span class=\"nv\">current_year</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">blocktranslate</span> <span class=\"cp\">%}</span>Copyright <span class=\"cp\">{{</span> <span class=\"nv\">current_year</span> <span class=\"cp\">}}{%</span> <span class=\"k\">endblocktranslate</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"partial\">\n<span id=\"std-templatetag-partial\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">partial</span></code><a class=\"heading-anchor\" href=\"#partial\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Renders a template fragment that was defined with <a class=\"reference internal\" href=\"#std-templatetag-partialdef\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">partialdef</span></code></a>, inserting\nthe matching partial at this location.</p>\n<p>用法：</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=\"cp\">{%</span> <span class=\"k\">partial</span> <span class=\"nv\">partial_name</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">partial_name</span></code> argument is the name of the template fragment to render.</p>\n<p>In the following example, a partial named <code class=\"docutils literal notranslate\"><span class=\"pre\">button</span></code> is defined and then\nrendered three times:</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=\"cp\">{%</span> <span class=\"k\">partialdef</span> <span class=\"nv\">button</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>Submit<span class=\"p\">&lt;/</span><span class=\"nt\">button</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endpartialdef</span> <span class=\"cp\">%}</span>\n\n<span class=\"cp\">{%</span> <span class=\"k\">partial</span> <span class=\"nv\">button</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">partial</span> <span class=\"nv\">button</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">partial</span> <span class=\"nv\">button</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"partialdef\">\n<span id=\"std-templatetag-partialdef\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">partialdef</span></code><a class=\"heading-anchor\" href=\"#partialdef\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<aside class=\"version-note version-added\" data-version=\"6.0\">\n<p class=\"version-note-title\">New in Django 6.0</p></aside>\n<p>Defines a reusable template fragment that can be rendered multiple times within\nthe same template or accessed directly via <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/templates/language/#template-partials-direct-access\"><span class=\"std std-ref\">template loading or inclusion</span></a>.</p>\n<p>用法：</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=\"cp\">{%</span> <span class=\"k\">partialdef</span> <span class=\"nv\">partial_name</span> <span class=\"cp\">%}</span>\n    <span class=\"c\">{# Reusable content. #}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endpartialdef</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">partial_name</span></code> argument is required and must be a valid template\nidentifier.</p>\n<p>In the following example, a new fragment named <code class=\"docutils literal notranslate\"><span class=\"pre\">card</span></code> is defined:</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=\"cp\">{%</span> <span class=\"k\">partialdef</span> <span class=\"nv\">card</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">div</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;card&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">h3</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">title</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">h3</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">content</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n    <span class=\"p\">&lt;/</span><span class=\"nt\">div</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endpartialdef</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>This partial can then be rendered using the <a class=\"reference internal\" href=\"#std-templatetag-partial\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">partial</span></code></a> tag:</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=\"cp\">{%</span> <span class=\"k\">partial</span> <span class=\"nv\">card</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">partial</span> <span class=\"nv\">card</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>To <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/templates/language/#template-partials-inline\"><span class=\"std std-ref\">render a fragment immediately in place</span></a>,\nuse the <code class=\"docutils literal notranslate\"><span class=\"pre\">inline</span></code> option. The partial is still stored and can be reused later.</p>\n</section>\n<section id=\"querystring\">\n<span id=\"std-templatetag-querystring\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">querystring</span></code><a class=\"heading-anchor\" href=\"#querystring\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>根据提供的参数输出一个 URL 编码的格式化查询字符串。</p>\n<p>This tag accepts positional arguments, which must be mappings (such as\n<a class=\"reference internal\" href=\"/zh-hans/6.1/ref/request-response/#django.http.QueryDict\" title=\"django.http.QueryDict\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code></a> or <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#dict\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">dict</span></code></a>). If no positional arguments\nare provided, <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/request-response/#django.http.HttpRequest.GET\" title=\"django.http.HttpRequest.GET\"><code class=\"xref py py-attr docutils literal notranslate\"><span class=\"pre\">request.GET</span></code></a> is used as the\ndefault to construct the query string.</p>\n<p>Positional arguments are processed sequentially, while keyword arguments are\ntreated as key-value pairs, applied last. Later arguments take precedence over\nearlier ones, ensuring the most recent pairs are reflected in the final result.</p>\n<p>The result always includes a leading <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;?&quot;</span></code> since this tag is mainly used for\nlinks, and an empty result could prevent the page from reloading as expected.</p>\n<aside class=\"admonition-using-request-get-as-default admonition\">\n<p class=\"admonition-title\">使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code> 作为默认值</p>\n<p>要使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code> 作为默认的 <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> 实例，应启用 <code class=\"docutils literal notranslate\"><span class=\"pre\">django.template.context_processors.request</span></code> 上下文处理器。如果未启用，你必须显式将 <code class=\"docutils literal notranslate\"><span class=\"pre\">request</span></code> 对象传递到模板上下文中，或为此标签提供 <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> 实例。</p>\n</aside>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>A <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code> was prepended to the query string for empty results.</p>\n</aside>\n<section id=\"basic-usage\">\n<h4>基本用法<a class=\"heading-anchor\" href=\"#basic-usage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Outputs the current query string verbatim. So if the query string in the\nrequest is <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=green</span></code>, the output would be <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=green</span></code>. If the\ncurrent query string is empty, the output will be <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code>.</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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">size</span><span class=\"o\">=</span><span class=\"s2\">&quot;M&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>输出当前查询字符串并添加 <code class=\"docutils literal notranslate\"><span class=\"pre\">size</span></code> 参数。根据前面的示例，输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=green&amp;size=M</span></code>。</p>\n</section>\n<section id=\"setting-items\">\n<h4>设置项<a class=\"heading-anchor\" href=\"#setting-items\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">color</span><span class=\"o\">=</span><span class=\"s2\">&quot;red&quot;</span> <span class=\"nv\">size</span><span class=\"o\">=</span><span class=\"s2\">&quot;S&quot;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>添加或修改查询字符串中的参数。每个关键字参数将被添加到查询字符串中，替换该键的任何现有值。例如，如果当前查询字符串是 <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=green</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=red&amp;size=S</span></code>。</p>\n</section>\n<section id=\"removing-items\">\n<h4>删除项<a class=\"heading-anchor\" href=\"#removing-items\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">color</span><span class=\"o\">=</span><span class=\"kp\">None</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>将 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code> 作为值传递会从查询字符串中删除该参数。例如，如果当前查询字符串是 <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=green&amp;size=M</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">?size=M</span></code>。</p>\n</section>\n<section id=\"handling-lists\">\n<h4>处理列表<a class=\"heading-anchor\" href=\"#handling-lists\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">color</span><span class=\"o\">=</span><span class=\"nv\">my_list</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">my_list</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">[&quot;red&quot;,</span> <span class=\"pre\">&quot;blue&quot;]</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=red&amp;color=blue</span></code>，在查询字符串中保留列表结构。</p>\n</section>\n<section id=\"customizing-the-base-querydict\">\n<h4>Customizing the base QueryDict<a class=\"heading-anchor\" href=\"#customizing-the-base-querydict\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>You can pass custom <code class=\"docutils literal notranslate\"><span class=\"pre\">QueryDict</span></code> or <code class=\"docutils literal notranslate\"><span class=\"pre\">dict</span></code> instances as positional arguments\nto replace <code class=\"docutils literal notranslate\"><span class=\"pre\">request.GET</span></code>. When multiple arguments are provided, key-value\npairs from later arguments take precedence over earlier ones.</p>\n<p>For example, if <code class=\"docutils literal notranslate\"><span class=\"pre\">my_query_dict</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;QueryDict:</span> <span class=\"pre\">{'color':</span> <span class=\"pre\">['blue'],</span> <span class=\"pre\">'size':</span>\n<span class=\"pre\">['S']}&gt;</span></code> and <code class=\"docutils literal notranslate\"><span class=\"pre\">my_dict</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">{'color':</span> <span class=\"pre\">'orange',</span> <span class=\"pre\">'fabric':</span> <span class=\"pre\">'silk',</span> <span class=\"pre\">'type':</span>\n<span class=\"pre\">'dress'}</span></code>, this outputs <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=orange&amp;size=S&amp;fabric=silk</span></code>.</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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">my_query_dict</span> <span class=\"nv\">my_dict</span> <span class=\"nv\">size</span><span class=\"o\">=</span><span class=\"s2\">&quot;S&quot;</span> <span class=\"nv\">type</span><span class=\"o\">=</span><span class=\"kp\">None</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>If all keys are removed by setting them to <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>, this outputs <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code>:</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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">my_query_dict</span> <span class=\"nv\">my_dict</span> <span class=\"nv\">color</span><span class=\"o\">=</span><span class=\"kp\">None</span> <span class=\"nv\">size</span><span class=\"o\">=</span><span class=\"kp\">None</span> <span class=\"nv\">fabric</span><span class=\"o\">=</span><span class=\"kp\">None</span> <span class=\"nv\">type</span><span class=\"o\">=</span><span class=\"kp\">None</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>Similarly, if all positional arguments are empty and keyword arguments do not\ncontribute any new params, the output will also be <code class=\"docutils literal notranslate\"><span class=\"pre\">?</span></code>.</p>\n<aside class=\"version-note version-changed\" data-version=\"6.0\">\n<p class=\"version-note-title\">Changed in Django 6.0</p><p>Support for multiple positional mapping arguments was added.</p>\n</aside>\n</section>\n<section id=\"dynamic-usage\">\n<h4>动态用法<a class=\"heading-anchor\" href=\"#dynamic-usage\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>使用此标签的一个常见示例是在显示结果页面时保留当前查询字符串，同时添加指向下一页和上一页结果的链接。例如，如果分页器当前位于第 3 页，且当前查询字符串为 <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=blue&amp;size=M&amp;page=3</span></code>，以下代码将输出 <code class=\"docutils literal notranslate\"><span class=\"pre\">?color=blue&amp;size=M&amp;page=4</span></code>：</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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">page</span><span class=\"o\">=</span><span class=\"nv\">page.next_page_number</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>你也可以将值存储在变量中。例如，如果需要多个指向同一页面的链接，可以将其定义为：</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=\"cp\">{%</span> <span class=\"k\">querystring</span> <span class=\"nv\">page</span><span class=\"o\">=</span><span class=\"nv\">page.next_page_number</span> <span class=\"k\">as</span> <span class=\"nv\">next_page</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n</section>\n<section id=\"regroup\">\n<span id=\"std-templatetag-regroup\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">regroup</span></code><a class=\"heading-anchor\" href=\"#regroup\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>通过一个共同的属性将一个相似的对象列表重新分组。</p>\n<p>这个复杂的标签通过一个例子得到了最好的说明：假设 <code class=\"docutils literal notranslate\"><span class=\"pre\">cities</span></code> 是一个由包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;name&quot;</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;population&quot;</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;country&quot;</span></code> 键的字典所代表的城市列表。</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"n\">cities</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Mumbai&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;19,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;India&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Calcutta&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;15,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;India&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;New York&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;20,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;USA&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Chicago&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;7,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;USA&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Tokyo&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;33,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Japan&quot;</span><span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>...而你想显示一个按国家排序的分层列表，像这样：</p>\n<ul class=\"simple\">\n<li><p>India</p>\n<ul>\n<li><p>Mumbai: 19,000,000</p></li>\n<li><p>Calcutta: 15,000,000</p></li>\n</ul>\n</li>\n<li><p>USA</p>\n<ul>\n<li><p>New York: 20,000,000</p></li>\n<li><p>Chicago: 7,000,000</p></li>\n</ul>\n</li>\n<li><p>Japan</p>\n<ul>\n<li><p>Tokyo: 33,000,000</p></li>\n</ul>\n</li>\n</ul>\n<p>你可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">regroup</span> <span class=\"pre\">%}</span></code> 标签将城市列表按国家分组。以下模板代码片段将实现这一目标：</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=\"cp\">{%</span> <span class=\"k\">regroup</span> <span class=\"nv\">cities</span> <span class=\"nv\">by</span> <span class=\"nv\">country</span> <span class=\"k\">as</span> <span class=\"nv\">country_list</span> <span class=\"cp\">%}</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\">country</span> <span class=\"k\">in</span> <span class=\"nv\">country_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\">country.grouper</span> <span class=\"cp\">}}</span>\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\">city</span> <span class=\"k\">in</span> <span class=\"nv\">country.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\">city.name</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">city.population</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    <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>让我们来看看这个例子。<code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">regroup</span> <span class=\"pre\">%}</span></code> 需要三个参数：要重新分组的列表、要分组的属性和结果列表的名称。在这里，我们通过 <code class=\"docutils literal notranslate\"><span class=\"pre\">country</span></code> 属性对 <code class=\"docutils literal notranslate\"><span class=\"pre\">cities</span></code> 列表进行重新分组，并将结果称为 <code class=\"docutils literal notranslate\"><span class=\"pre\">country_list</span></code>。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">regroup</span> <span class=\"pre\">%}</span></code> produces a list (in this case, <code class=\"docutils literal notranslate\"><span class=\"pre\">country_list</span></code>) of\n<strong>group objects</strong>. Group objects are instances of\n<a class=\"reference external\" href=\"https://docs.python.org/3/library/collections.html#collections.namedtuple\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">namedtuple()</span></code></a> with two fields:</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">grouper</span></code> —— 被分组的项目（例如，“India” 或 “Japan” 等字符串）。</p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">list</span></code> —— 本组所有项目的清单（例如，country='India' 的所有城市的清单）。</p></li>\n</ul>\n<p>Because <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">regroup</span> <span class=\"pre\">%}</span></code> produces <a class=\"reference external\" href=\"https://docs.python.org/3/library/collections.html#collections.namedtuple\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">namedtuple()</span></code></a> objects,\nyou can also write the previous example as:</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=\"cp\">{%</span> <span class=\"k\">regroup</span> <span class=\"nv\">cities</span> <span class=\"nv\">by</span> <span class=\"nv\">country</span> <span class=\"k\">as</span> <span class=\"nv\">country_list</span> <span class=\"cp\">%}</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\">country</span><span class=\"o\">,</span> <span class=\"nv\">local_cities</span> <span class=\"k\">in</span> <span class=\"nv\">country_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\">country</span> <span class=\"cp\">}}</span>\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\">city</span> <span class=\"k\">in</span> <span class=\"nv\">local_cities</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\">city.name</span> <span class=\"cp\">}}</span>: <span class=\"cp\">{{</span> <span class=\"nv\">city.population</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    <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>请注意，<code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">regroup</span> <span class=\"pre\">%}</span></code> 并没有对其输入进行排序！我们的例子依赖于这样一个事实： <code class=\"docutils literal notranslate\"><span class=\"pre\">cities</span></code> 列表首先是按 <code class=\"docutils literal notranslate\"><span class=\"pre\">country</span></code> 排序的。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">cities</span></code> 列表没有按 <code class=\"docutils literal notranslate\"><span class=\"pre\">country</span></code> 排序，重新分组就会天真地显示一个国家的多个组。例如，如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">cities</span></code> 列表设置成这样（注意，国家没有被归为一组）。</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"n\">cities</span> <span class=\"o\">=</span> <span class=\"p\">[</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Mumbai&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;19,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;India&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;New York&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;20,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;USA&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Calcutta&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;15,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;India&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Chicago&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;7,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;USA&quot;</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Tokyo&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;population&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;33,000,000&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;country&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Japan&quot;</span><span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>有了这个 <code class=\"docutils literal notranslate\"><span class=\"pre\">cities</span></code> 的输入，上面的 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">regroup</span> <span class=\"pre\">%}</span></code> 模板代码就会有如下输出。</p>\n<ul class=\"simple\">\n<li><p>India</p>\n<ul>\n<li><p>Mumbai: 19,000,000</p></li>\n</ul>\n</li>\n<li><p>USA</p>\n<ul>\n<li><p>New York: 20,000,000</p></li>\n</ul>\n</li>\n<li><p>India</p>\n<ul>\n<li><p>Calcutta: 15,000,000</p></li>\n</ul>\n</li>\n<li><p>USA</p>\n<ul>\n<li><p>Chicago: 7,000,000</p></li>\n</ul>\n</li>\n<li><p>Japan</p>\n<ul>\n<li><p>Tokyo: 33,000,000</p></li>\n</ul>\n</li>\n</ul>\n<p>解决这个问题最简单的方法是在你的视图代码中确保数据是按照你想显示的方式来排序的。</p>\n<p>另一种解决方案是使用 <a class=\"reference internal\" href=\"#std-templatefilter-dictsort\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">dictsort</span></code></a> 过滤器在模板中对数据进行排序，如果你的数据是一个字典列表的话：</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=\"cp\">{%</span> <span class=\"k\">regroup</span> <span class=\"nv\">cities</span><span class=\"o\">|</span><span class=\"nf\">dictsort</span><span class=\"s2\">:&quot;country&quot;</span> <span class=\"nv\">by</span> <span class=\"nv\">country</span> <span class=\"k\">as</span> <span class=\"nv\">country_list</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<section id=\"grouping-on-other-properties\">\n<h4>对其他属性进行分组<a class=\"heading-anchor\" href=\"#grouping-on-other-properties\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>对于 <code class=\"docutils literal notranslate\"><span class=\"pre\">regroup</span></code> 标签，任何有效的模板查找都是合法的分组属性，包括方法、属性、字典键和列表项。例如，如果 &quot;country&quot; 字段是一个外键，指向一个带有属性 &quot;description&quot; 的类，你可以这样使用：</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=\"cp\">{%</span> <span class=\"k\">regroup</span> <span class=\"nv\">cities</span> <span class=\"nv\">by</span> <span class=\"nv\">country.description</span> <span class=\"k\">as</span> <span class=\"nv\">country_list</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>或者，如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">country</span></code> 是一个带有 <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 的字段，它将作为属性具有 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/models/instances/#django.db.models.Model.get_FOO_display\" title=\"django.db.models.Model.get_FOO_display\"><code class=\"xref py py-meth docutils literal notranslate\"><span class=\"pre\">get_FOO_display()</span></code></a> 方法，允许你按显示字符串而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 键进行分组：</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=\"cp\">{%</span> <span class=\"k\">regroup</span> <span class=\"nv\">cities</span> <span class=\"nv\">by</span> <span class=\"nv\">get_country_display</span> <span class=\"k\">as</span> <span class=\"nv\">country_list</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">country.grouper</span> <span class=\"pre\">}}</span></code> 现在将显示 <code class=\"docutils literal notranslate\"><span class=\"pre\">choices</span></code> 集的值域，而不是键。</p>\n</section>\n</section>\n<section id=\"resetcycle\">\n<span id=\"std-templatetag-resetcycle\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">resetcycle</span></code><a class=\"heading-anchor\" href=\"#resetcycle\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>重置之前的 <a class=\"reference internal\" href=\"#cycle\">cycle</a> ，使其在下一次遇到时从第一项开始重新启动。如果没有参数，<code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">resetcycle</span> <span class=\"pre\">%}</span></code> 将重置模板中定义的最后一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">cycle</span> <span class=\"pre\">%}</span></code>。</p>\n<p>使用实例：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">coach</span> <span class=\"k\">in</span> <span class=\"nv\">coach_list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">coach.name</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\">athlete</span> <span class=\"k\">in</span> <span class=\"nv\">coach.athlete_set.all</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">p</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;odd&#39;</span> <span class=\"s1\">&#39;even&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">athlete.name</span> <span class=\"cp\">}}</span><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=\"cp\">{%</span> <span class=\"k\">resetcycle</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>这个示例将返回以下 HTML：</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>Gareth<span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;odd&quot;</span><span class=\"p\">&gt;</span>Harry<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;even&quot;</span><span class=\"p\">&gt;</span>John<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;odd&quot;</span><span class=\"p\">&gt;</span>Nick<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>John<span class=\"p\">&lt;/</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;odd&quot;</span><span class=\"p\">&gt;</span>Andrea<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">p</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;even&quot;</span><span class=\"p\">&gt;</span>Melissa<span class=\"p\">&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>请注意第一个代码块以 <code class=\"docutils literal notranslate\"><span class=\"pre\">class=&quot;odd&quot;</span></code> 结束，而新的代码块以 <code class=\"docutils literal notranslate\"><span class=\"pre\">class=&quot;odd&quot;</span></code> 开始。如果没有 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">resetcycle</span> <span class=\"pre\">%}</span></code> 标签，第二块将以 <code class=\"docutils literal notranslate\"><span class=\"pre\">class=&quot;even&quot;</span></code> 开始。</p>\n<p>你还可以重置具有名称的循环标记：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">item</span> <span class=\"k\">in</span> <span class=\"nv\">list</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span> <span class=\"na\">class</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;odd&#39;</span> <span class=\"s1\">&#39;even&#39;</span> <span class=\"k\">as</span> <span class=\"nv\">stripe</span> <span class=\"cp\">%}</span><span class=\"s\"> </span><span class=\"cp\">{%</span> <span class=\"k\">cycle</span> <span class=\"s1\">&#39;major&#39;</span> <span class=\"s1\">&#39;minor&#39;</span> <span class=\"s1\">&#39;minor&#39;</span> <span class=\"s1\">&#39;minor&#39;</span> <span class=\"s1\">&#39;minor&#39;</span> <span class=\"k\">as</span> <span class=\"nv\">tick</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n        <span class=\"cp\">{{</span> <span class=\"nv\">item.data</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\">ifchanged</span> <span class=\"nv\">item.category</span> <span class=\"cp\">%}</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">h1</span><span class=\"p\">&gt;</span><span class=\"cp\">{{</span> <span class=\"nv\">item.category</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\">if</span> <span class=\"k\">not</span> <span class=\"nb\">forloop</span><span class=\"nv\">.first</span> <span class=\"cp\">%}{%</span> <span class=\"k\">resetcycle</span> <span class=\"nv\">tick</span> <span class=\"cp\">%}{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{%</span> <span class=\"k\">endifchanged</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>在这个例子中，我们既有奇数／偶数行的交替，也有每第五行的 “主要” 行。只有当类别发生变化时，才会重置五行循环。</p>\n</section>\n<section id=\"spaceless\">\n<span id=\"std-templatetag-spaceless\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">spaceless</span></code><a class=\"heading-anchor\" href=\"#spaceless\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>删除 HTML 标签之间的空白。这包括制表符和换行符。</p>\n<p>使用实例：</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=\"cp\">{%</span> <span class=\"k\">spaceless</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;foo/&quot;</span><span class=\"p\">&gt;</span>Foo<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</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\">endspaceless</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>这个示例将返回以下 HTML：</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\">p</span><span class=\"p\">&gt;&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;foo/&quot;</span><span class=\"p\">&gt;</span>Foo<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;&lt;/</span><span class=\"nt\">p</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>只有 <em>标记</em> 之间的空格被删除，而不是标记和文本之间的空格。在这个示例中，<code class=\"docutils literal notranslate\"><span class=\"pre\">Hello</span></code> 周围的空格不会被删除：</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=\"cp\">{%</span> <span class=\"k\">spaceless</span> <span class=\"cp\">%}</span>\n    <span class=\"p\">&lt;</span><span class=\"nt\">strong</span><span class=\"p\">&gt;</span>\n        Hello\n    <span class=\"p\">&lt;/</span><span class=\"nt\">strong</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endspaceless</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"templatetag\">\n<span id=\"std-templatetag-templatetag\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">templatetag</span></code><a class=\"heading-anchor\" href=\"#templatetag\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>输出用于组成模板标签的语法字符之一。</p>\n<p>模板系统没有“转义”单个字符的概念。但是，你可以使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">templatetag</span> <span class=\"pre\">%}</span></code> 标签来显示其中一个模板标记字符组合。</p>\n<p>这个参数告诉我们要输出哪个模板位：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>参数</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">openblock</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">closeblock</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">%}</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">openvariable</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">closevariable</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">}}</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">openbrace</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">closebrace</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">}</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">opencomment</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{#</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">closecomment</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">#}</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>示例用法：</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>The <span class=\"cp\">{%</span> <span class=\"k\">templatetag</span> <span class=\"nv\">openblock</span> <span class=\"cp\">%}</span> characters open a block.\n</code></pre></div>\n<p>另请参阅 <a class=\"reference internal\" href=\"#std-templatetag-verbatim\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">verbatim</span></code></a> 标签以了解包含这些字符的另一种方式。</p>\n</section>\n<section id=\"url\">\n<span id=\"std-templatetag-url\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">url</span></code><a class=\"heading-anchor\" href=\"#url\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>返回与给定视图和可选参数相匹配的绝对路径引用（不含域名的 URL）。路径中的任何特殊字符将使用 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/utils/#django.utils.encoding.iri_to_uri\" title=\"django.utils.encoding.iri_to_uri\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">iri_to_uri()</span></code></a> 进行编码。</p>\n<p>This is a way to output links without violating the DRY principle by having to\nhardcode URLs in your templates:</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=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;some-url-name&#39;</span> <span class=\"nv\">v1</span> <span class=\"nv\">v2</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>第一个参数是一个 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/http/urls/#naming-url-patterns\"><span class=\"std std-ref\">URL 模式名称</span></a>。它可以是带引号的文字或任何其他上下文变量。额外的参数是可选的，并且应该是用作 URL 参数的空格分隔值。上面的示例展示了传递位置参数。或者，你也可以使用关键字语法：</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=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;some-url-name&#39;</span> <span class=\"nv\">arg1</span><span class=\"o\">=</span><span class=\"nv\">v1</span> <span class=\"nv\">arg2</span><span class=\"o\">=</span><span class=\"nv\">v2</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>不要在一次调用中同时混合使用位置和关键字语法。URLconf 所要求的所有参数都应该存在。</p>\n<p>例如，假设你有一个视图，<code class=\"docutils literal notranslate\"><span class=\"pre\">app_views.client</span></code>，它的 URLconf 需要一个客户端 ID（这里，<code class=\"docutils literal notranslate\"><span class=\"pre\">client()</span></code> 是视图文件 <code class=\"docutils literal notranslate\"><span class=\"pre\">app_views.py</span></code> 中的一个方法）。URLconf 行可能是这样的：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;client/&lt;int:id&gt;/&quot;</span><span class=\"p\">,</span> <span class=\"n\">app_views</span><span class=\"o\">.</span><span class=\"n\">client</span><span class=\"p\">,</span> <span class=\"n\">name</span><span class=\"o\">=</span><span class=\"s2\">&quot;app-views-client&quot;</span><span class=\"p\">)</span>\n</code></pre></div>\n<p>如果这个应用的 URLconf 被包含在项目的 URLconf 中，路径如下：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"n\">path</span><span class=\"p\">(</span><span class=\"s2\">&quot;clients/&quot;</span><span class=\"p\">,</span> <span class=\"n\">include</span><span class=\"p\">(</span><span class=\"s2\">&quot;project_name.app_name.urls&quot;</span><span class=\"p\">))</span>\n</code></pre></div>\n<p>...然后，在模板中，你可以像这样创建到这个视图的链接：</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=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;app-views-client&#39;</span> <span class=\"nv\">client.id</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>模板标签将输出字符串 <code class=\"docutils literal notranslate\"><span class=\"pre\">/clients/client/123/</span></code>。</p>\n<p>请注意，如果你要反查的 URL 不存在，你会得到一个 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/exceptions/#django.urls.NoReverseMatch\" title=\"django.urls.NoReverseMatch\"><code class=\"xref py py-exc docutils literal notranslate\"><span class=\"pre\">NoReverseMatch</span></code></a> 的异常引发，这将导致你的网站显示一个错误页面。</p>\n<p>如果你想获取一个 URL 而不显示它，可以使用稍微不同的调用方式：</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=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;some-url-name&#39;</span> <span class=\"nv\">arg</span> <span class=\"nv\">arg2</span> <span class=\"k\">as</span> <span class=\"nv\">the_url</span> <span class=\"cp\">%}</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">the_url</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>I&#39;m linking to <span class=\"cp\">{{</span> <span class=\"nv\">the_url</span> <span class=\"cp\">}}</span><span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">as</span> <span class=\"pre\">var</span></code> 语法创建的变量范围是 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">block</span> <span class=\"pre\">%}</span></code>，其中出现 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">url</span> <span class=\"pre\">%}</span></code> 标签。</p>\n<p>这种 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">url</span> <span class=\"pre\">...</span> <span class=\"pre\">as</span> <span class=\"pre\">var</span> <span class=\"pre\">%}</span></code> 语法如果视图不存在将 <em>不会</em> 引发错误。在实际应用中，你可以使用这种方式链接到可选的视图：</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=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;some-url-name&#39;</span> <span class=\"k\">as</span> <span class=\"nv\">the_url</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">if</span> <span class=\"nv\">the_url</span> <span class=\"cp\">%}</span>\n  <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">the_url</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>Link to optional stuff<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endif</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>如果你想获取带命名空间的 URL，请指定完全限定的名称：</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=\"cp\">{%</span> <span class=\"k\">url</span> <span class=\"s1\">&#39;myapp:view-name&#39;</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>这将遵循正常的 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/http/urls/#topics-http-reversing-url-namespaces\"><span class=\"std std-ref\">命名空间 URL 解析策略</span></a>，包括使用上下文提供的关于当前应用程序的任何提示。</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>不要忘记在 URL 模式的 <code class=\"docutils literal notranslate\"><span class=\"pre\">name</span></code> 周围加上引号，否则其值将被解释为一个上下文变量！</p>\n</aside>\n</section>\n<section id=\"verbatim\">\n<span id=\"std-templatetag-verbatim\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">verbatim</span></code><a class=\"heading-anchor\" href=\"#verbatim\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>停止模板引擎渲染此块标签的内容。</p>\n<p>常见的用法是允许一个与 Django 语法冲突的 JavaScript 模板层。例如：</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=\"cp\">{%</span> <span class=\"k\">verbatim</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span><span class=\"k\">if</span> <span class=\"nv\">dying</span><span class=\"cp\">}}</span>Still alive.<span class=\"cp\">{{</span><span class=\"o\">/</span><span class=\"k\">if</span><span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endverbatim</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>你还可以指定一个特定的闭合标签，允许在未渲染的内容中使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">endverbatim</span> <span class=\"pre\">%}</span></code>：</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=\"cp\">{%</span> <span class=\"k\">verbatim</span> <span class=\"nv\">myblock</span> <span class=\"cp\">%}</span>\n    Avoid template rendering via the <span class=\"cp\">{%</span> <span class=\"k\">verbatim</span> <span class=\"cp\">%}{%</span> <span class=\"k\">endverbatim</span> <span class=\"cp\">%}</span> block.\n<span class=\"cp\">{%</span> <span class=\"k\">endverbatim</span> <span class=\"nv\">myblock</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"widthratio\">\n<span id=\"std-templatetag-widthratio\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">widthratio</span></code><a class=\"heading-anchor\" href=\"#widthratio\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>对于创建条形图等，该标签计算给定值与最大值的比率，然后将该比率应用于一个常数。</p>\n<p>例如：</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\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;bar.png&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;Bar&quot;</span>\n     <span class=\"na\">height</span><span class=\"o\">=</span><span class=\"s\">&quot;10&quot;</span> <span class=\"na\">width</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">widthratio</span> <span class=\"nv\">this_value</span> <span class=\"nv\">max_value</span> <span class=\"nv\">max_width</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">this_value</span></code> 是175，<code class=\"docutils literal notranslate\"><span class=\"pre\">max_value</span></code> 是 200，<code class=\"docutils literal notranslate\"><span class=\"pre\">max_width</span></code> 是 100，则上例中的图像宽度为 88 像素（因为 175 / 200 = 0.875；0.875 * 100 = 87.5，四舍五入为 88）。</p>\n<p>在某些情况下，你可能希望将 <code class=\"docutils literal notranslate\"><span class=\"pre\">widthratio</span></code> 的结果捕获到一个变量中。这在像下面这样的 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/translation/#std-templatetag-blocktranslate\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">blocktranslate</span></code></a> 中可能很有用：</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=\"cp\">{%</span> <span class=\"k\">widthratio</span> <span class=\"nv\">this_value</span> <span class=\"nv\">max_value</span> <span class=\"nv\">max_width</span> <span class=\"k\">as</span> <span class=\"nv\">width</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">blocktranslate</span> <span class=\"cp\">%}</span>The width is: <span class=\"cp\">{{</span> <span class=\"nv\">width</span> <span class=\"cp\">}}{%</span> <span class=\"k\">endblocktranslate</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"with\">\n<span id=\"std-templatetag-with\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">with</span></code><a class=\"heading-anchor\" href=\"#with\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将一个复杂的变量缓存在一个简单的名称下。当多次访问一个 “昂贵的” 方法（例如，访问数据库的方法）时，这很有用。</p>\n<p>例如：</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=\"cp\">{%</span> <span class=\"k\">with</span> <span class=\"nv\">total</span><span class=\"o\">=</span><span class=\"nv\">business.employees.count</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">total</span> <span class=\"cp\">}}</span> employee<span class=\"cp\">{{</span> <span class=\"nv\">total</span><span class=\"o\">|</span><span class=\"nf\">pluralize</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endwith</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>被填充的变量（在上面的例子中，<code class=\"docutils literal notranslate\"><span class=\"pre\">total</span></code>）只有在 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">with</span> <span class=\"pre\">%}</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">endwith</span> <span class=\"pre\">%}</span></code> 标签之间才能使用。</p>\n<p>你可以分配多个上下文变量：</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=\"cp\">{%</span> <span class=\"k\">with</span> <span class=\"nv\">alpha</span><span class=\"o\">=</span><span class=\"m\">1</span> <span class=\"nv\">beta</span><span class=\"o\">=</span><span class=\"m\">2</span> <span class=\"cp\">%}</span>\n    ...\n<span class=\"cp\">{%</span> <span class=\"k\">endwith</span> <span class=\"cp\">%}</span>\n</code></pre></div>\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\">{%</span> <span class=\"pre\">with</span> <span class=\"pre\">business.employees.count</span> <span class=\"pre\">as</span> <span class=\"pre\">total</span> <span class=\"pre\">%}</span></code>。</p>\n</aside>\n</section>\n</section>\n<section id=\"built-in-filter-reference\">\n<span id=\"ref-templates-builtins-filters\"></span><h2>内置过滤器参考<a class=\"heading-anchor\" href=\"#built-in-filter-reference\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<section id=\"add\">\n<span id=\"std-templatefilter-add\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">add</span></code><a class=\"heading-anchor\" href=\"#add\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将参数添加到值中。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">add</span><span class=\"s2\">:&quot;2&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">4</span></code>，那么输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">6</span></code>。</p>\n<p>这个过滤器将首先尝试将两个值强制转为整数。如果失败了，它将尝试将两个值加在一起。这对某些数据类型（字符串、列表等）有效，而对其他类型则失败。如果失败，结果将是一个空字符串。</p>\n<p>例如，如果我们有：</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=\"cp\">{{</span> <span class=\"nv\">first</span><span class=\"o\">|</span><span class=\"nf\">add</span><span class=\"o\">:</span><span class=\"nv\">second</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>同时 <code class=\"docutils literal notranslate\"><span class=\"pre\">first</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">[1,</span> <span class=\"pre\">2,</span> <span class=\"pre\">3]</span></code> 并且 <code class=\"docutils literal notranslate\"><span class=\"pre\">second</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">[4,</span> <span class=\"pre\">5,</span> <span class=\"pre\">6]</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">[1,</span> <span class=\"pre\">2,</span> <span class=\"pre\">3,</span> <span class=\"pre\">4,</span> <span class=\"pre\">5,</span> <span class=\"pre\">6]</span></code>。</p>\n<aside class=\"admonition admonition-warning\" role=\"note\">\n<p class=\"admonition-title\">Warning</p>\n<p>可以强制转为整数的字符串将被 <strong>相加</strong>，而不是像上面上一个例子那样被连在一起。</p>\n</aside>\n</section>\n<section id=\"addslashes\">\n<span id=\"std-templatefilter-addslashes\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">addslashes</span></code><a class=\"heading-anchor\" href=\"#addslashes\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>在引号前添加斜杠。对 CSV 中的字符串进行转义很有用，例如。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">addslashes</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;I'm</span> <span class=\"pre\">using</span> <span class=\"pre\">Django&quot;</span></code>，那么输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;I\\'m</span> <span class=\"pre\">using</span> <span class=\"pre\">Django&quot;</span></code>。</p>\n</section>\n<section id=\"capfirst\">\n<span id=\"std-templatefilter-capfirst\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">capfirst</span></code><a class=\"heading-anchor\" href=\"#capfirst\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将值的第一个字符大写。如果第一个字符不是字母，这个过滤器就没有效果。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">capfirst</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;django&quot;</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Django&quot;</span></code>。</p>\n</section>\n<section id=\"center\">\n<span id=\"std-templatefilter-center\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">center</span></code><a class=\"heading-anchor\" href=\"#center\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>在给定宽度的字段中使数值居中。</p>\n<p>例如：</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>&quot;<span class=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">center</span><span class=\"s2\">:&quot;15&quot;</span> <span class=\"cp\">}}</span>&quot;\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Django&quot;</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;</span>&#160;&#160;&#160;&#160; <span class=\"pre\">Django</span>&#160;&#160;&#160; <span class=\"pre\">&quot;</span></code>。</p>\n</section>\n<section id=\"cut\">\n<span id=\"std-templatefilter-cut\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">cut</span></code><a class=\"heading-anchor\" href=\"#cut\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>从给定的字符串中删除参数的所有值。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">cut</span><span class=\"s2\">:&quot; &quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;String</span> <span class=\"pre\">with</span> <span class=\"pre\">spaces&quot;</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Stringwithspaces&quot;</span></code>。</p>\n</section>\n<section id=\"date\">\n<span id=\"std-templatefilter-date\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">date</span></code><a class=\"heading-anchor\" href=\"#date\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>根据给定的格式设置日期。</p>\n<p>使用与 PHP 的 <a class=\"reference external\" href=\"https://www.php.net/manual/en/function.date.php\">date()</a> 函数类似的格式，但有一些差异。</p>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>这些格式字符在模板之外的 Django 中没有使用。它们被设计成与 PHP 兼容，以方便设计师过渡。</p>\n</aside>\n<p id=\"date-and-time-formatting-specifiers\">可用的格式字符串：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>格式字符</p></th>\n<th class=\"head\"><p>描述</p></th>\n<th class=\"head\"><p>输出示例</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><strong>日</strong></p></td>\n<td></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">d</span></code></p></td>\n<td><p>某月的某日，2 位带前导零的数字。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'01'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'31'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">j</span></code></p></td>\n<td><p>某月的某日，前面没有零。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'1'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'31'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">D</span></code></p></td>\n<td><p>某周的某日，3 个字母的文本。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'Fri'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">l</span></code></p></td>\n<td><p>某周的某日，长文本。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'Friday'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">S</span></code></p></td>\n<td><p>某月英文序号后缀的某日，2 个字符。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'st'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'nd'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'rd'</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">'th'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">w</span></code></p></td>\n<td><p>某周的某日，不含前导零的数字。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'0'</span></code> （星期天）到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'6'</span></code> （星期六）</p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">z</span></code></p></td>\n<td><p>某年的某日</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">366</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><strong>周</strong></p></td>\n<td></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">W</span></code></p></td>\n<td><p>年的 ISO-8601 周数，周从星期一开始。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code>，<code class=\"docutils literal notranslate\"><span class=\"pre\">53</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><strong>月</strong></p></td>\n<td></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">m</span></code></p></td>\n<td><p>月份，2 位数，前面加 0。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'01'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'12'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">n</span></code></p></td>\n<td><p>没有前导零的月份。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'1'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'12'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">M</span></code></p></td>\n<td><p>月，3 个字母的文本。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'Jan'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">b</span></code></p></td>\n<td><p>月，小写的 3 个字母的文本。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'jan'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">E</span></code></p></td>\n<td><p>月，特定地域的替代表示方法，通常用于长日期表示。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'listopada'</span></code> （波兰语，与 <code class=\"docutils literal notranslate\"><span class=\"pre\">'Listopad'</span></code> 相对）</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">F</span></code></p></td>\n<td><p>月，长文本。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'January'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">N</span></code></p></td>\n<td><p>美联社风格的月份缩写。专属扩展。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'Jan.'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'Feb.'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'March'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'May'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">t</span></code></p></td>\n<td><p>特定月份的天数。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">28</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">31</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><strong>年</strong></p></td>\n<td></td>\n<td></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">y</span></code></p></td>\n<td><p>年，2 位带前导零的数字。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'00'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'99'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Y</span></code></p></td>\n<td><p>年，4 位带前导零的数字。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'0001'</span></code>, ..., <code class=\"docutils literal notranslate\"><span class=\"pre\">'1999'</span></code>, ..., <code class=\"docutils literal notranslate\"><span class=\"pre\">'9999'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">L</span></code></p></td>\n<td><p>是否为闰年的布尔值。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">o</span></code></p></td>\n<td><p>ISO-8601 周数年，对应于使用闰周的 ISO-8601 周数（W）。更常见的年份格式见 Y。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'1999'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><strong>时间</strong></p></td>\n<td></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">g</span></code></p></td>\n<td><p>小时，12 小时格式，无前导零。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'1'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'12'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">G</span></code></p></td>\n<td><p>小时，24 小时格式，无前导零。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'0'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'23'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">h</span></code></p></td>\n<td><p>小时，12 小时格式。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'01'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'12'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">H</span></code></p></td>\n<td><p>小时，24 小时格式。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'00'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'23'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">i</span></code></p></td>\n<td><p>分钟。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'00'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'59'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">s</span></code></p></td>\n<td><p>秒，2 位带前导零的数字。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'00'</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">'59'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">u</span></code></p></td>\n<td><p>微秒。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">000000</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">999999</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">a</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'a.m.'</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">'p.m.'</span></code> （请注意，这与 PHP 的输出略有不同，因为这包括了与美联社风格一致的句号）。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'a.m.'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">A</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'AM'</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">'PM'</span></code>。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'AM'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">f</span></code></p></td>\n<td><p>时间，以 12 小时格式的小时和分钟为单位，如果是零，就把分钟去掉。专属扩展。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'1'</span></code>，<code class=\"docutils literal notranslate\"><span class=\"pre\">'1:30'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">P</span></code></p></td>\n<td><p>时间，以 12 小时格式的小时、分钟和  'a.m.'／'p.m.' 为单位，如果分钟为零，则不写，如果有，则写上特殊大小写的字符串 'midnight' 和 'noon'。专属扩展。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'1</span> <span class=\"pre\">a.m.'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'1:30</span> <span class=\"pre\">p.m.'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'midnight'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'noon'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'12:30</span> <span class=\"pre\">p.m.'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><strong>时区</strong></p></td>\n<td></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">e</span></code></p></td>\n<td><p>时区名称。可以是任何格式，也可以返回一个空字符串，取决于日期时间。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">''</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'GMT'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'-500'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'US/Eastern'</span></code> 等。</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">I</span></code></p></td>\n<td><p>夏令时，无论是否生效。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'1'</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">'0'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">O</span></code></p></td>\n<td><p>与格林威治时间的时差。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'+0200'</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">T</span></code></p></td>\n<td><p>本机的时区。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'EST'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'MDT'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">Z</span></code></p></td>\n<td><p>时区偏移以秒为单位。UTC 以西的时区偏移总是负数，UTC 以东的时区偏移总是正数。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">-43200</span></code> 到 <code class=\"docutils literal notranslate\"><span class=\"pre\">43200</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><strong>日期／时间</strong></p></td>\n<td></td>\n<td></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">c</span></code></p></td>\n<td><p>ISO 8601 格式。 （注意：与“Z”、“O”或“r”等其他格式化程序不同，如果值是原始日期时间，“c”格式化程序将不会添加时区偏移量（参见 <a class=\"reference external\" href=\"https://docs.python.org/3/library/datetime.html#datetime.tzinfo\" title=\"(in Python v3.14)\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">datetime.tzinfo</span></code></a>）。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">2008-01-02T10:30:00.000123+02:00</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">2008-01-02T10:30:00.000123</span></code> 如果日期时间是本地的</p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">r</span></code></p></td>\n<td><p><span class=\"target\" id=\"index-2\"></span><a class=\"rfc reference external\" href=\"https://datatracker.ietf.org/doc/html/rfc5322.html#section-3.3\"><strong>RFC 5322</strong></a> 格式的日期。</p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'Thu,</span> <span class=\"pre\">21</span> <span class=\"pre\">Dec</span> <span class=\"pre\">2000</span> <span class=\"pre\">16:01:07</span> <span class=\"pre\">+0200'</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">U</span></code></p></td>\n<td><p>自 Unix 纪元（1970 年 1 月 1 日 00:00:00 UTC）以来的秒数。</p></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;D d M Y&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is a <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</span></code></a> object (e.g., the result of\n<code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime.now()</span></code>), the output will be the string\n<code class=\"docutils literal notranslate\"><span class=\"pre\">'Wed</span> <span class=\"pre\">09</span> <span class=\"pre\">Jan</span> <span class=\"pre\">2008'</span></code>.</p>\n<p>传递的格式可以是预定义的 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">DATETIME_FORMAT</span></code></a>、<a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-SHORT_DATE_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATE_FORMAT</span></code></a> 或 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-SHORT_DATETIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">SHORT_DATETIME_FORMAT</span></code></a>, 或者是使用上表中显示的格式指定器的自定义格式。请注意，预定义的格式可能会根据当前的 locale 而有所不同。</p>\n<p>假设 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-LANGUAGE_CODE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_CODE</span></code></a> 是，例如，<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;es&quot;</span></code>，那么对于：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;SHORT_DATE_FORMAT&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>输出将是字符串 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;09/01/2008&quot;</span></code> （Django 自带的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;SHORT_DATE_FORMAT&quot;</span></code> 格式指定符是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;d/m/Y&quot;</span></code>）。</p>\n<p>当没有使用格式字符串时，将使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT</span></code> 格式说明符。假设与前面的示例相同的设置：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">date</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>输出 <code class=\"docutils literal notranslate\"><span class=\"pre\">9</span> <span class=\"pre\">de</span> <span class=\"pre\">Enero</span> <span class=\"pre\">de</span> <span class=\"pre\">2008</span></code> （<code class=\"docutils literal notranslate\"><span class=\"pre\">DATE_FORMAT'</span></code> 格式指定符为 <code class=\"docutils literal notranslate\"><span class=\"pre\">r'j\\d\\e</span> <span class=\"pre\">F\\d\\e</span> <span class=\"pre\">Y'</span></code>）。“d” 和 “e” 都是反斜杠，因为否则每一个都是一个格式字符串，分别显示日期和时区名称。</p>\n<p>你可以将 <code class=\"docutils literal notranslate\"><span class=\"pre\">date</span></code> 与 <a class=\"reference internal\" href=\"#std-templatefilter-time\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">time</span></code></a> 过滤器组合使用来渲染一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> 值的完整表示。例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">date</span><span class=\"s2\">:&quot;D d M Y&quot;</span> <span class=\"cp\">}}</span> <span class=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">time</span><span class=\"s2\">:&quot;H:i&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n</section>\n<section id=\"default\">\n<span id=\"std-templatefilter-default\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">default</span></code><a class=\"heading-anchor\" href=\"#default\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>如果值为 <code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code>，则使用给定的默认值。否则，使用该值。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">default</span><span class=\"s2\">:&quot;nothing&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&quot;</span></code> （空字符串），输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">nothing</span></code>。</p>\n</section>\n<section id=\"default-if-none\">\n<span id=\"std-templatefilter-default_if_none\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">default_if_none</span></code><a class=\"heading-anchor\" href=\"#default-if-none\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>如果（也只有当）值是 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>，使用给定的默认值。否则，使用该值。</p>\n<p>请注意，如果给定一个空字符串，将 <em>不会</em> 使用默认值。如果你想使用空字符串，请使用 <a class=\"reference internal\" href=\"#std-templatefilter-default\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">default</span></code></a> 过滤器。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">default_if_none</span><span class=\"s2\">:&quot;nothing&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">nothing</span></code>。</p>\n</section>\n<section id=\"dictsort\">\n<span id=\"std-templatefilter-dictsort\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">dictsort</span></code><a class=\"heading-anchor\" href=\"#dictsort\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>获取一个字典列表，并按照参数中给出的键排序返回该列表。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">dictsort</span><span class=\"s2\">:&quot;name&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"p\">[</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;zed&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">19</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;amy&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">22</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;joe&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">31</span><span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>那么输出将是：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"p\">[</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;amy&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">22</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;joe&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">31</span><span class=\"p\">},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;zed&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">19</span><span class=\"p\">},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>你还可以做更复杂的事情，比如：</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=\"cp\">{%</span> <span class=\"k\">for</span> <span class=\"nv\">book</span> <span class=\"k\">in</span> <span class=\"nv\">books</span><span class=\"o\">|</span><span class=\"nf\">dictsort</span><span class=\"s2\">:&quot;author.age&quot;</span> <span class=\"cp\">%}</span>\n    * <span class=\"cp\">{{</span> <span class=\"nv\">book.title</span> <span class=\"cp\">}}</span> (<span class=\"cp\">{{</span> <span class=\"nv\">book.author.name</span> <span class=\"cp\">}}</span>)\n<span class=\"cp\">{%</span> <span class=\"k\">endfor</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">books</span></code> 是：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"p\">[</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;1984&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;George&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">45</span><span class=\"p\">}},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Timequake&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Kurt&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">75</span><span class=\"p\">}},</span>\n    <span class=\"p\">{</span><span class=\"s2\">&quot;title&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Alice&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;author&quot;</span><span class=\"p\">:</span> <span class=\"p\">{</span><span class=\"s2\">&quot;name&quot;</span><span class=\"p\">:</span> <span class=\"s2\">&quot;Lewis&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;age&quot;</span><span class=\"p\">:</span> <span class=\"mi\">33</span><span class=\"p\">}},</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>那么输出将是：</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>* Alice (Lewis)\n* 1984 (George)\n* Timequake (Kurt)\n</code></pre></div>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">dictsort</span></code> 也可以按指定索引处的元素对列表的列表（或任何其他实现了 <code class=\"docutils literal notranslate\"><span class=\"pre\">__getitem__()</span></code> 的对象）进行排序。例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">dictsort</span><span class=\"o\">:</span><span class=\"m\">0</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"p\">[</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;42&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;c&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;string&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;b&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>那么输出将是：</p>\n<div class=\"code-block\" data-language=\"python\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Python</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=\"Python code\"><code><span class=\"p\">[</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;a&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;42&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;b&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;foo&quot;</span><span class=\"p\">),</span>\n    <span class=\"p\">(</span><span class=\"s2\">&quot;c&quot;</span><span class=\"p\">,</span> <span class=\"s2\">&quot;string&quot;</span><span class=\"p\">),</span>\n<span class=\"p\">]</span>\n</code></pre></div>\n<p>你必须将索引作为整数而不是字符串传递。以下示例会产生空输出：</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=\"cp\">{{</span> <span class=\"nv\">values</span><span class=\"o\">|</span><span class=\"nf\">dictsort</span><span class=\"s2\">:&quot;0&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>按指定索引处的元素排序不支持在字典上进行。</p>\n</section>\n<section id=\"dictsortreversed\">\n<span id=\"std-templatefilter-dictsortreversed\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">dictsortreversed</span></code><a class=\"heading-anchor\" href=\"#dictsortreversed\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>取一个字典列表，并按参数中给出的键反向排序返回该列表。这与上面的过滤器的工作原理完全相同，但返回的值将是倒序的。</p>\n</section>\n<section id=\"divisibleby\">\n<span id=\"std-templatefilter-divisibleby\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">divisibleby</span></code><a class=\"heading-anchor\" href=\"#divisibleby\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>如果数值被参数整除，则返回 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">divisibleby</span><span class=\"s2\">:&quot;3&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">21</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</p>\n</section>\n<section id=\"escape\">\n<span id=\"std-templatefilter-escape\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code><a class=\"heading-anchor\" href=\"#escape\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>转义字符串的 HTML。具体来说，它可以进行这些替换。</p>\n<ul class=\"simple\">\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;</span></code> 被替换为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;lt;</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&gt;</span></code> 被替换为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;gt;</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code> （单引号）被替换为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;#x27;</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;</span></code> （双引号）被替换为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;quot;</span></code></p></li>\n<li><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;</span></code> 被替换为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&amp;amp;</span></code></p></li>\n</ul>\n<p>将 <code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code> 应用到一个通常会对结果进行自动转义的变量上，结果只会进行一轮转义。所以即使在自动转义环境中使用这个函数也是安全的。如果你想进行多次转义，请使用 <a class=\"reference internal\" href=\"#std-templatefilter-force_escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">force_escape</span></code></a> 过滤器。</p>\n<p>例如，当 <a class=\"reference internal\" href=\"#std-templatetag-autoescape\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">autoescape</span></code></a> 关闭时，你可以对字段应用 <code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code>：</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=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">off</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">title</span><span class=\"o\">|</span><span class=\"nf\">escape</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n<aside class=\"admonition-chaining-escape-with-other-filters admonition\">\n<p class=\"admonition-title\">将 <code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code> 与其他过滤器链接起来：</p>\n<p>如在 <a class=\"reference internal\" href=\"#std-templatetag-autoescape\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">autoescape</span></code></a> 部分提到的，当包括 <code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code> 在内的过滤器链接在一起时，如果前面的过滤器将一个潜在不安全的字符串标记为安全，由于 <a class=\"reference internal\" href=\"#std-templatetag-autoescape\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">autoescape</span></code></a> 为 <code class=\"docutils literal notranslate\"><span class=\"pre\">off</span></code> 而导致没有转义，可能会导致意外的结果。</p>\n<p>在这种情况下，链接 <code class=\"docutils literal notranslate\"><span class=\"pre\">escape</span></code> 不会重新转义已被标记为安全的字符串。</p>\n<p>这在使用操作序列的过滤器时尤为重要，例如 <a class=\"reference internal\" href=\"#std-templatefilter-join\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">join</span></code></a>。如果需要转义序列中的每个元素，请使用专用的 <a class=\"reference internal\" href=\"#std-templatefilter-escapeseq\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escapeseq</span></code></a> 过滤器。</p>\n</aside>\n</section>\n<section id=\"escapejs\">\n<span id=\"std-templatefilter-escapejs\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">escapejs</span></code><a class=\"heading-anchor\" href=\"#escapejs\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将字符转义以用作整个 JavaScript 字符串文字，可以用单引号或双引号，如下所示。此过滤器不会使字符串适用于 <em>&quot;JavaScript 模板文字&quot;</em> （JavaScript 反引号语法）。不支持上面未列出的任何其他用途。通常建议将数据传递使用 HTML <code class=\"docutils literal notranslate\"><span class=\"pre\">data-</span></code> 属性或 <a class=\"reference internal\" href=\"#std-templatefilter-json_script\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">json_script</span></code></a> 过滤器，而不是在嵌入的 JavaScript 中使用。</p>\n<p>例如：</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\">script</span><span class=\"p\">&gt;</span>\n<span class=\"kd\">let</span><span class=\"w\"> </span><span class=\"nx\">myValue</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"s1\">&#39;</span><span class=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">escapejs</span> <span class=\"cp\">}}</span><span class=\"s1\">&#39;</span>\n</code></pre></div>\n</section>\n<section id=\"escapeseq\">\n<span id=\"std-templatefilter-escapeseq\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">escapeseq</span></code><a class=\"heading-anchor\" href=\"#escapeseq\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 过滤器应用于序列的每个元素。与其他操作序列的过滤器（如 <a class=\"reference internal\" href=\"#std-templatefilter-join\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">join</span></code></a>）结合使用时非常有用。例如：</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=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">off</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">my_list</span><span class=\"o\">|</span><span class=\"nf\">escapeseq</span><span class=\"o\">|</span><span class=\"nf\">join</span><span class=\"s2\">:&quot;, &quot;</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"filesizeformat\">\n<span id=\"std-templatefilter-filesizeformat\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">filesizeformat</span></code><a class=\"heading-anchor\" href=\"#filesizeformat\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以 “人类可读” 的文件大小为格式（如 <code class=\"docutils literal notranslate\"><span class=\"pre\">'13</span> <span class=\"pre\">KB'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'4.1</span> <span class=\"pre\">MB'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'102</span> <span class=\"pre\">bytes'</span></code> 等）。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">filesizeformat</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 123456789，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">117.7</span> <span class=\"pre\">MB</span></code>。</p>\n<aside class=\"admonition-file-sizes-and-si-units admonition\">\n<p class=\"admonition-title\">文件大小和 SI 单位</p>\n<p>严格来说，<code class=\"docutils literal notranslate\"><span class=\"pre\">filesizeformat</span></code> 并不符合国际单位制，国际单位制建议在字节大小以 1024 的幂计算时使用 KiB、MiB、GiB 等单位（这里就是这种情况）。相反，Django 使用了传统的单位名称（KB、MB、GB 等），对应的是比较常用的名称。</p>\n</aside>\n</section>\n<section id=\"first\">\n<span id=\"std-templatefilter-first\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">first</span></code><a class=\"heading-anchor\" href=\"#first\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>返回列表中的第一个项目。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">first</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是列表 <code class=\"docutils literal notranslate\"><span class=\"pre\">['a',</span> <span class=\"pre\">'b',</span> <span class=\"pre\">'c']</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">'a'</span></code>。</p>\n</section>\n<section id=\"floatformat\">\n<span id=\"std-templatefilter-floatformat\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">floatformat</span></code><a class=\"heading-anchor\" href=\"#floatformat\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>当不使用参数时，将浮点数四舍五入到小数点后一位——但只在有小数部分要显示的情况下。例如：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></p></th>\n<th class=\"head\"><p>模板</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.23234</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.2</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.00000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.26000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.3</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>如果与数字整数参数一起使用，<code class=\"docutils literal notranslate\"><span class=\"pre\">floatform</span></code> 将一个数字四舍五入到小数点后几位。例如：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></p></th>\n<th class=\"head\"><p>模板</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.23234</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:3</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.232</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.00000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:3</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.000</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.26000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:3</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.260</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>特别有用的是传递 0（零）作为参数，它将把浮点数舍入到最接近的整数。</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></p></th>\n<th class=\"head\"><p>模板</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.23234</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;0&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.00000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;0&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">39.56000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;0&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">40</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>如果传递给 <code class=\"docutils literal notranslate\"><span class=\"pre\">floatform</span></code> 的参数是负数，它将把一个数字四舍五入到小数点后的位数——但只在有小数部分要显示的情况下。例如：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></p></th>\n<th class=\"head\"><p>模板</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.23234</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;-3&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.232</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.00000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;-3&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.26000</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;-3&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.260</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>如果传递给 <code class=\"docutils literal notranslate\"><span class=\"pre\">floatformat</span></code> 的参数具有 <code class=\"docutils literal notranslate\"><span class=\"pre\">g</span></code> 后缀，它将强制使用当前区域设置的 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-THOUSAND_SEPARATOR\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">THOUSAND_SEPARATOR</span></code></a> 进行分组。例如，当活动区域设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">en</span></code> （英语）时：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></p></th>\n<th class=\"head\"><p>模板</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34232.34</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;2g&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34,232.34</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34232.06</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;g&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34,232.1</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34232.00</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;-3g&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34,232</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>输出始终是本地化的（与 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/formatting/#std-templatetag-localize\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">localize</span> <span class=\"pre\">off</span> <span class=\"pre\">%}</span></code></a> 标签无关），除非传递给 <code class=\"docutils literal notranslate\"><span class=\"pre\">floatformat</span></code> 的参数具有 <code class=\"docutils literal notranslate\"><span class=\"pre\">u</span></code> 后缀，这将强制禁用本地化。例如，当活动区域设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">pl</span></code> （波兰语）时：</p>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p><code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code></p></th>\n<th class=\"head\"><p>模板</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.23234</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;3&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34,232</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.23234</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">value|floatformat:&quot;3u&quot;</span> <span class=\"pre\">}}</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">34.232</span></code></p></td>\n</tr>\n</tbody>\n</table>\n</div>\n<p>在没有参数的情况下使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">floatformat</span></code> 相当于在参数为 <code class=\"docutils literal notranslate\"><span class=\"pre\">-1</span></code> 的情况下使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">floatformat</span></code>。</p>\n</section>\n<section id=\"force-escape\">\n<span id=\"std-templatefilter-force_escape\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">force_escape</span></code><a class=\"heading-anchor\" href=\"#force-escape\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>对字符串进行 HTML 转义处理（详情请参见 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 过滤器）。这个过滤器会 <em>立即</em> 应用，并返回一个新的转义字符串。在极少数情况下，当你需要多次转义或想对转义结果应用其他过滤器时，这很有用。通常情况下，你要使用 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 过滤器。</p>\n<p>例如，如果你想捕获由 <a class=\"reference internal\" href=\"#std-templatefilter-linebreaks\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">linebreaks</span></code></a> 过滤器创建的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;p&gt;</span></code> HTML 元素：</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=\"cp\">{%</span> <span class=\"k\">autoescape</span> <span class=\"nv\">off</span> <span class=\"cp\">%}</span>\n    <span class=\"cp\">{{</span> <span class=\"nv\">body</span><span class=\"o\">|</span><span class=\"nf\">linebreaks</span><span class=\"o\">|</span><span class=\"nf\">force_escape</span> <span class=\"cp\">}}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">endautoescape</span> <span class=\"cp\">%}</span>\n</code></pre></div>\n</section>\n<section id=\"get-digit\">\n<span id=\"std-templatefilter-get_digit\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">get_digit</span></code><a class=\"heading-anchor\" href=\"#get-digit\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>给定一个整数，返回要求的数字，其中 1 是最右边的数字，2 是最右边的数字，等等。对于无效的输入（如果输入或参数不是整数，或者参数小于 1），返回原始值。否则，输出总是一个整数。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">get_digit</span><span class=\"s2\">:&quot;2&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">123456789</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">8</span></code>。</p>\n</section>\n<section id=\"iriencode\">\n<span id=\"std-templatefilter-iriencode\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">iriencode</span></code><a class=\"heading-anchor\" href=\"#iriencode\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将 IRI（国际化资源标识符）转换为适合包含在 URL 中的字符串。如果你想在 URL 中使用包含非 ASCII 字符的字符串，这一点是必要的。</p>\n<p>在已经通过 <a class=\"reference internal\" href=\"#std-templatefilter-urlencode\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">urlencode</span></code></a> 过滤器的字符串上使用这个过滤器是安全的。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">iriencode</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;?test=I</span> <span class=\"pre\">♥</span> <span class=\"pre\">Django&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;?test=I%20%E2%99%A5%20Django&quot;</span></code>。</p>\n</section>\n<section id=\"join\">\n<span id=\"std-templatefilter-join\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">join</span></code><a class=\"heading-anchor\" href=\"#join\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>用字符串连接一个列表，就像 Python 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">str.join(list)</span></code> 一样。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">join</span><span class=\"s2\">:&quot; // &quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是列表 <code class=\"docutils literal notranslate\"><span class=\"pre\">['a',</span> <span class=\"pre\">'b',</span> <span class=\"pre\">'c']</span></code>，输出将是字符串 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;a</span> <span class=\"pre\">//</span> <span class=\"pre\">b</span> <span class=\"pre\">//</span> <span class=\"pre\">c&quot;</span></code>。</p>\n</section>\n<section id=\"json-script\">\n<span id=\"std-templatefilter-json_script\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">json_script</span></code><a class=\"heading-anchor\" href=\"#json-script\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>安全地将 Python 对象输出为 JSON，用 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;script&gt;</span></code> 标签包装，准备好与 JavaScript 一起使用。</p>\n<p><strong>参数：</strong> 可选的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;script&gt;</span></code> 标签的 HTML &quot;id&quot;。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">json_script</span><span class=\"s2\">:&quot;hello-data&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是字典 <code class=\"docutils literal notranslate\"><span class=\"pre\">{'hello':'world'}</span></code>，则输出为：</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">script</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;hello-data&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;application/json&quot;</span><span class=\"p\">&gt;{</span><span class=\"s2\">&quot;hello&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;world&quot;</span><span class=\"p\">}&lt;/</span><span class=\"nt\">script</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>由此产生的数据可以用 JavaScript 来访问，比如这样：</p>\n<div class=\"code-block\" data-language=\"javascript\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">JavaScript</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=\"JavaScript code\"><code><span class=\"kd\">const</span><span class=\"w\"> </span><span class=\"nx\">value</span><span class=\"w\"> </span><span class=\"o\">=</span><span class=\"w\"> </span><span class=\"nb\">JSON</span><span class=\"p\">.</span><span class=\"nx\">parse</span><span class=\"p\">(</span><span class=\"nb\">document</span><span class=\"p\">.</span><span class=\"nx\">getElementById</span><span class=\"p\">(</span><span class=\"s1\">&#39;hello-data&#39;</span><span class=\"p\">).</span><span class=\"nx\">textContent</span><span class=\"p\">);</span>\n</code></pre></div>\n<p>XSS 攻击可以通过转义字符 “&lt;”、“&gt;” 和 “&amp;” 来缓解。例如，如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">{'hello':</span> <span class=\"pre\">'world&lt;/script&gt;&amp;amp;'}</span></code>，则输出为：</p>\n<div class=\"code-block\" data-language=\"html\"><div class=\"code-block-toolbar\"><span class=\"code-block-language\">Html</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=\"Html code\"><code><span class=\"p\">&lt;</span><span class=\"nt\">script</span> <span class=\"na\">id</span><span class=\"o\">=</span><span class=\"s\">&quot;hello-data&quot;</span> <span class=\"na\">type</span><span class=\"o\">=</span><span class=\"s\">&quot;application/json&quot;</span><span class=\"p\">&gt;{</span><span class=\"s2\">&quot;hello&quot;</span><span class=\"o\">:</span><span class=\"w\"> </span><span class=\"s2\">&quot;world\\\\u003C/script\\\\u003E\\\\u0026amp;&quot;</span><span class=\"p\">}&lt;/</span><span class=\"nt\">script</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>这与严格的内容安全策略兼容，禁止在页面中执行脚本。它还保持了被动数据和可执行代码之间的明确分离。</p>\n</section>\n<section id=\"last\">\n<span id=\"std-templatefilter-last\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">last</span></code><a class=\"heading-anchor\" href=\"#last\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>返回列表中的最后一项。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">last</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是列表 <code class=\"docutils literal notranslate\"><span class=\"pre\">['a',</span> <span class=\"pre\">'b',</span> <span class=\"pre\">'c',</span> <span class=\"pre\">'d']</span></code>，输出将是字符串 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;d&quot;</span></code>。</p>\n</section>\n<section id=\"length\">\n<span id=\"std-templatefilter-length\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">length</span></code><a class=\"heading-anchor\" href=\"#length\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>返回值的长度。这对字符串和列表都有效。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">length</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">['a',</span> <span class=\"pre\">'b',</span> <span class=\"pre\">'c',</span> <span class=\"pre\">'d']</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;abcd&quot;</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">4</span></code>。</p>\n<p>过滤器对未定义的变量返回 <code class=\"docutils literal notranslate\"><span class=\"pre\">0</span></code>。</p>\n</section>\n<section id=\"linebreaks\">\n<span id=\"std-templatefilter-linebreaks\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">linebreaks</span></code><a class=\"heading-anchor\" href=\"#linebreaks\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>用适当的 HTML 替换纯文本中的换行符；一个新行成为 HTML 换行符（<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;br&gt;</span></code>），一个新行后的空行成为段落换行符（<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;/p&gt;</span></code>）。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">linebreaks</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Joel\\nis</span> <span class=\"pre\">a</span> <span class=\"pre\">slug</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;p&gt;Joel&lt;br&gt;is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&lt;/p&gt;</span></code>。</p>\n</section>\n<section id=\"linebreaksbr\">\n<span id=\"std-templatefilter-linebreaksbr\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">linebreaksbr</span></code><a class=\"heading-anchor\" href=\"#linebreaksbr\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将一段纯文本中的所有换行符转换为 HTML 换行符（<code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;br&gt;</span></code>）。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">linebreaksbr</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Joel/nis</span> <span class=\"pre\">a</span> <span class=\"pre\">slug</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">Joel&lt;br&gt;is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug</span></code>。</p>\n</section>\n<section id=\"linenumbers\">\n<span id=\"std-templatefilter-linenumbers\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">linenumbers</span></code><a class=\"heading-anchor\" href=\"#linenumbers\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>显示带有行号的文本。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">linenumbers</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是：</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>one\ntwo\nthree\n</code></pre></div>\n<p>输出将是：</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>1. one\n2. two\n3. three\n</code></pre></div>\n</section>\n<section id=\"ljust\">\n<span id=\"std-templatefilter-ljust\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">ljust</span></code><a class=\"heading-anchor\" href=\"#ljust\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>左对齐给定宽度的字段中的值。</p>\n<p><strong>参数：</strong> 字段大小</p>\n<p>例如：</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>&quot;<span class=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">ljust</span><span class=\"s2\">:&quot;10&quot;</span> <span class=\"cp\">}}</span>&quot;\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Django</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Django</span>&#160;&#160;&#160; <span class=\"pre\">&quot;</span></code>。</p>\n</section>\n<section id=\"lower\">\n<span id=\"std-templatefilter-lower\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">lower</span></code><a class=\"heading-anchor\" href=\"#lower\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将一个字符串转换为全小写。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">lower</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Totally</span> <span class=\"pre\">LOVING</span> <span class=\"pre\">this</span> <span class=\"pre\">Album!</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">totally</span> <span class=\"pre\">loving</span> <span class=\"pre\">this</span> <span class=\"pre\">album!</span></code>。</p>\n</section>\n<section id=\"make-list\">\n<span id=\"std-templatefilter-make_list\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">make_list</span></code><a class=\"heading-anchor\" href=\"#make-list\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>返回变成列表的值。对于字符串，它是一个字符列表。对于整数来说，在创建列表之前，参数会被转换为一个字符串。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">make_list</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是字符串 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel&quot;</span></code>，输出将是列表 <code class=\"docutils literal notranslate\"><span class=\"pre\">['J',</span> <span class=\"pre\">'o',</span> <span class=\"pre\">'e',</span> <span class=\"pre\">'l']</span></code>。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">123</span></code>，输出将是列表 <code class=\"docutils literal notranslate\"><span class=\"pre\">['1'，'2'，'3']</span></code>。</p>\n</section>\n<section id=\"phone2numeric\">\n<span id=\"std-templatefilter-phone2numeric\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">phone2numeric</span></code><a class=\"heading-anchor\" href=\"#phone2numeric\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将一个电话号码（可能包含字母）转换为其数字等价物。</p>\n<p>输入的不一定是有效的电话号码。这将很乐意转换任何字符串。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">phone2numeric</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">800-COLLECT</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">800-2655328</span></code>。</p>\n</section>\n<section id=\"pluralize\">\n<span id=\"std-templatefilter-pluralize\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">pluralize</span></code><a class=\"heading-anchor\" href=\"#pluralize\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>如果值不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'1'</span></code> 或长度为 1 的对象，则返回复数后缀。 默认情况下，后缀为 <code class=\"docutils literal notranslate\"><span class=\"pre\">'s'</span></code>。</p>\n<p>例如：</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>You have <span class=\"cp\">{{</span> <span class=\"nv\">num_messages</span> <span class=\"cp\">}}</span> message<span class=\"cp\">{{</span> <span class=\"nv\">num_messages</span><span class=\"o\">|</span><span class=\"nf\">pluralize</span> <span class=\"cp\">}}</span>.\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">num_messages</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">1</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">You</span> <span class=\"pre\">have</span> <span class=\"pre\">1</span> <span class=\"pre\">message.</span></code> 如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">num_messages</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">2</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">You</span> <span class=\"pre\">have</span> <span class=\"pre\">2</span> <span class=\"pre\">messages.</span></code>。</p>\n<p>对于需要后缀而不是 <code class=\"docutils literal notranslate\"><span class=\"pre\">'s'</span></code> 的词，你可以提供一个备用后缀作为过滤器的参数。</p>\n<p>例如：</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>You have <span class=\"cp\">{{</span> <span class=\"nv\">num_walruses</span> <span class=\"cp\">}}</span> walrus<span class=\"cp\">{{</span> <span class=\"nv\">num_walruses</span><span class=\"o\">|</span><span class=\"nf\">pluralize</span><span class=\"s2\">:&quot;es&quot;</span> <span class=\"cp\">}}</span>.\n</code></pre></div>\n<p>对于不使用简单后缀进行复数的单词，你可以同时指定单数和复数后缀，并用逗号分隔。</p>\n<p>例如：</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>You have <span class=\"cp\">{{</span> <span class=\"nv\">num_cherries</span> <span class=\"cp\">}}</span> cherr<span class=\"cp\">{{</span> <span class=\"nv\">num_cherries</span><span class=\"o\">|</span><span class=\"nf\">pluralize</span><span class=\"s2\">:&quot;y,ies&quot;</span> <span class=\"cp\">}}</span>.\n</code></pre></div>\n<aside class=\"admonition admonition-note\" role=\"note\">\n<p class=\"admonition-title\">Note</p>\n<p>使用 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/translation/#std-templatetag-blocktranslate\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">blocktranslate</span></code></a> 来实现翻译字符串的复数化。</p>\n</aside>\n</section>\n<section id=\"pprint\">\n<span id=\"std-templatefilter-pprint\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">pprint</span></code><a class=\"heading-anchor\" href=\"#pprint\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p><a class=\"reference external\" href=\"https://docs.python.org/3/library/pprint.html#pprint.pprint\" title=\"(in Python v3.14)\"><code class=\"xref py py-func docutils literal notranslate\"><span class=\"pre\">pprint.pprint()</span></code></a> 的一个包装器 —— 真的是用来调试的。</p>\n</section>\n<section id=\"random\">\n<span id=\"std-templatefilter-random\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">random</span></code><a class=\"heading-anchor\" href=\"#random\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>从给定列表中随机返回一个项目。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">random</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是列表 <code class=\"docutils literal notranslate\"><span class=\"pre\">['a',</span> <span class=\"pre\">'b',</span> <span class=\"pre\">'c',</span> <span class=\"pre\">'d']</span></code>，输出可能是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;b&quot;</span></code>。</p>\n</section>\n<section id=\"rjust\">\n<span id=\"std-templatefilter-rjust\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">rjust</span></code><a class=\"heading-anchor\" href=\"#rjust\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>右对齐给定宽度的字段中的值。</p>\n<p><strong>参数：</strong> 字段大小</p>\n<p>例如：</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>&quot;<span class=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">rjust</span><span class=\"s2\">:&quot;10&quot;</span> <span class=\"cp\">}}</span>&quot;\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Django</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;</span>&#160;&#160;&#160; <span class=\"pre\">Django&quot;</span></code>。</p>\n</section>\n<section id=\"safe\">\n<span id=\"std-templatefilter-safe\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">safe</span></code><a class=\"heading-anchor\" href=\"#safe\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>标记一个字符串在输出前不需要进一步的 HTML 转义。当自动转义关闭时，该过滤器没有效果。</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\">safe</span></code> 之后应用的过滤器可能会使内容再次变得不安全。例如，以下代码会原样打印变量，不进行转义：</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=\"cp\">{{</span> <span class=\"nv\">var</span><span class=\"o\">|</span><span class=\"nf\">safe</span><span class=\"o\">|</span><span class=\"nf\">escape</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n</aside>\n</section>\n<section id=\"safeseq\">\n<span id=\"std-templatefilter-safeseq\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">safeseq</span></code><a class=\"heading-anchor\" href=\"#safeseq\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>对序列的每个元素应用 <a class=\"reference internal\" href=\"#std-templatefilter-safe\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">safe</span></code></a> 过滤器。与其他操作序列的过滤器（如 <a class=\"reference internal\" href=\"#std-templatefilter-join\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">join</span></code></a>）结合使用时非常有用。例如：</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=\"cp\">{{</span> <span class=\"nv\">some_list</span><span class=\"o\">|</span><span class=\"nf\">safeseq</span><span class=\"o\">|</span><span class=\"nf\">join</span><span class=\"s2\">:&quot;, &quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>在这种情况下，你不能直接使用 <a class=\"reference internal\" href=\"#std-templatefilter-safe\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">safe</span></code></a> 过滤器，因为它会首先将变量转换为字符串，而不是处理序列中的单个元素。</p>\n</section>\n<section id=\"slice\">\n<span id=\"std-templatefilter-slice\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">slice</span></code><a class=\"heading-anchor\" href=\"#slice\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>返回列表的一个片段。</p>\n<p>使用与 Python 的列表切片相同的语法。有关介绍，请参阅 <a class=\"reference external\" href=\"https://docs.python.org/3/tutorial/introduction.html#lists\">Python 文档</a>。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">some_list</span><span class=\"o\">|</span><span class=\"nf\">slice</span><span class=\"s2\">:&quot;:2&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">some_list</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">['a',</span> <span class=\"pre\">'b',</span> <span class=\"pre\">'c']</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">['a',</span> <span class=\"pre\">'b']</span></code>。</p>\n</section>\n<section id=\"slugify\">\n<span id=\"std-templatefilter-slugify\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">slugify</span></code><a class=\"heading-anchor\" href=\"#slugify\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>转换为 ASCII 码。将空格转换为连字符。移除非字母数字、下划线或连字符的字符。转换为小写字母。还可以去除前导和尾部的空白。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">slugify</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&quot;</span></code>，那么输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;joel-is-a-slug&quot;</span></code>。</p>\n</section>\n<section id=\"stringformat\">\n<span id=\"std-templatefilter-stringformat\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">stringformat</span></code><a class=\"heading-anchor\" href=\"#stringformat\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>根据参数——字符串格式化指定器，对变量进行格式化。这个指定符使用 <a class=\"reference external\" href=\"https://docs.python.org/3/library/stdtypes.html#old-string-formatting\" title=\"(in Python v3.14)\"><span>printf-style String Formatting</span></a> 语法，例外的是前面的 “%” 被删除。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">stringformat</span><span class=\"s2\">:&quot;E&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">10</span></code>，则输出为 <code class=\"docutils literal notranslate\"><span class=\"pre\">1.000000E+01</span></code>。</p>\n</section>\n<section id=\"striptags\">\n<span id=\"std-templatefilter-striptags\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">striptags</span></code><a class=\"heading-anchor\" href=\"#striptags\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>尽一切努力剥离所有 [X]HTML 标签。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">striptags</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&lt;b&gt;Joel&lt;/b&gt;</span> <span class=\"pre\">&lt;button&gt;is&lt;/button&gt;</span> <span class=\"pre\">a</span> <span class=\"pre\">&lt;span&gt;slug&lt;/span&gt;&quot;</span></code>, 那么输出就会是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&quot;</span></code>.</p>\n<aside class=\"admonition-no-safety-guarantee admonition\">\n<p class=\"admonition-title\">没有安全保证</p>\n<p>请注意，<code class=\"docutils literal notranslate\"><span class=\"pre\">striptags</span></code> 不会保证其输出是 HTML 安全的，特别是在输入为非有效 HTML 的情况下。因此，<strong>绝不要</strong> 将 <code class=\"docutils literal notranslate\"><span class=\"pre\">safe</span></code> 过滤器应用于 <code class=\"docutils literal notranslate\"><span class=\"pre\">striptags</span></code> 输出。如果你正在寻找更健壮的解决方案，请考虑使用第三方的 HTML 清理工具。</p>\n</aside>\n</section>\n<section id=\"time\">\n<span id=\"std-templatefilter-time\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">time</span></code><a class=\"heading-anchor\" href=\"#time\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>根据给定的格式对时间进行格式化。</p>\n<p>给定的格式可以是预定义的 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-TIME_FORMAT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code></a>，也可以是自定义的格式，和 <a class=\"reference internal\" href=\"#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> 过滤器一样。请注意，预定义的格式是依赖于 locale 的。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">time</span><span class=\"s2\">:&quot;H:i&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 相当于 <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime.datetime.now()</span></code>，输出将是字符串 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;01:23&quot;</span></code>。</p>\n<p>请注意，如果要使用“原始”值，可以对格式字符串进行反斜杠转义。在这个示例中，&quot;h&quot; 和 &quot;m&quot; 都进行了反斜杠转义，因为否则它们分别是显示小时和月份的格式字符串：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">time</span><span class=\"s2\">:&quot;H\\h i\\m&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>这样就会显示为 “01h 23m”。</p>\n<p>另一个例子：</p>\n<p>假设 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-LANGUAGE_CODE\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">LANGUAGE_CODE</span></code></a> 是，例如，<code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;de&quot;</span></code>，那么对于：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">time</span><span class=\"s2\">:&quot;TIME_FORMAT&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>输出将是字符串 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;01:23&quot;</span></code> （Django 自带的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;TIME_FORMAT&quot;</span></code> 格式指定符为 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;H:i&quot;</span></code>）。</p>\n<p>The <code class=\"docutils literal notranslate\"><span class=\"pre\">time</span></code> filter will only accept parameters in the format string that\nrelate to the time of day, not the date. If you need to format a <code class=\"docutils literal notranslate\"><span class=\"pre\">date</span></code>\nvalue, use the <a class=\"reference internal\" href=\"#std-templatefilter-date\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">date</span></code></a> filter instead (or along with <a class=\"reference internal\" href=\"#std-templatefilter-time\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">time</span></code></a> if\nyou need to render a full <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</span></code></a> value).</p>\n<p>上述规则有一个例外。当传递一个附带时区信息的 <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> 值时（一个 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/timezones/#naive-vs-aware-datetimes\"><span class=\"std std-ref\">时区感知</span></a> 的 <code class=\"docutils literal notranslate\"><span class=\"pre\">datetime</span></code> 实例），<code class=\"docutils literal notranslate\"><span class=\"pre\">time</span></code> 过滤器将接受与时区相关的 <a class=\"reference internal\" href=\"#date-and-time-formatting-specifiers\"><span class=\"std std-ref\">格式指定符</span></a> <code class=\"docutils literal notranslate\"><span class=\"pre\">'e'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'O'</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">'T'</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">'Z'</span></code>。</p>\n<p>当没有使用格式字符串时，将使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">TIME_FORMAT</span></code> 格式说明符：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">time</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>与以下代码相同：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">time</span><span class=\"s2\">:&quot;TIME_FORMAT&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n</section>\n<section id=\"timesince\">\n<span id=\"std-templatefilter-timesince\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">timesince</span></code><a class=\"heading-anchor\" href=\"#timesince\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将日期格式化为自该日期起的时间（如 “4 days, 6 hours”）。</p>\n<p>接受一个可选参数，该参数是一个包含要用作比较点的日期的变量（如果没有参数，比较点就是 <em>现在</em>）。例如，如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">blog_date</span></code> 是一个表示2006年6月1日午夜的日期实例，而 <code class=\"docutils literal notranslate\"><span class=\"pre\">comment_date</span></code> 是一个表示 2006 年 6 月 1 日上午 8:00 的日期实例，那么以下代码将返回 &quot;8 小时&quot;：</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=\"cp\">{{</span> <span class=\"nv\">blog_date</span><span class=\"o\">|</span><span class=\"nf\">timesince</span><span class=\"o\">:</span><span class=\"nv\">comment_date</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>比较本地偏移和感知偏移的日期会返回一个空字符串。</p>\n<p>分钟是使用的最小单位，凡是相对于比较点来说是未来的日期，都会返回 “0 minutes”。</p>\n</section>\n<section id=\"timeuntil\">\n<span id=\"std-templatefilter-timeuntil\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">timeuntil</span></code><a class=\"heading-anchor\" href=\"#timeuntil\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>与 <code class=\"docutils literal notranslate\"><span class=\"pre\">timesince</span></code> 类似，不同的是，它测量的是从现在到给定日期或日期时间的时间。例如，如果今天是 2006 年 6 月 1 日，而 <code class=\"docutils literal notranslate\"><span class=\"pre\">conference_date</span></code> 是一个持有 2006 年 6 月 29 日的日期实例，那么 <code class=\"docutils literal notranslate\"><span class=\"pre\">{conference_date|timeuntil</span> <span class=\"pre\">}}</span></code> 将返回 “4 weeks”。</p>\n<p>接受一个可选参数，该参数是一个包含要用作比较点的日期的变量（而不是 <em>现在</em>）。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">from_date</span></code> 包含了 2006 年 6 月 22 日，那么以下代码将返回 &quot;1 周&quot;：</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=\"cp\">{{</span> <span class=\"nv\">conference_date</span><span class=\"o\">|</span><span class=\"nf\">timeuntil</span><span class=\"o\">:</span><span class=\"nv\">from_date</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>比较本地偏移和感知偏移的日期会返回一个空字符串。</p>\n<p>分钟是使用的最小单位，相对于比较点而言，任何处于过去的日期都将返回 “0 minutes”。</p>\n</section>\n<section id=\"title\">\n<span id=\"std-templatefilter-title\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">title</span></code><a class=\"heading-anchor\" href=\"#title\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>通过使单词以大写字母开头，其余字符以小写字母开头，将字符串转换为大写字母。这个标签不会努力让 “琐碎的单词” 保持小写。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">title</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;my</span> <span class=\"pre\">FIRST</span> <span class=\"pre\">post&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;My</span> <span class=\"pre\">First</span> <span class=\"pre\">Post&quot;</span></code>。</p>\n</section>\n<section id=\"truncatechars\">\n<span id=\"std-templatefilter-truncatechars\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">truncatechars</span></code><a class=\"heading-anchor\" href=\"#truncatechars\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>如果一个字符串的长度超过指定的字符数，则截断它。截断后的字符串将以一个可翻译的省略号（“...”）结束。</p>\n<p><strong>参数：</strong> 要截断的字符数</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">truncatechars</span><span class=\"o\">:</span><span class=\"m\">7</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">i…&quot;</span></code>。</p>\n</section>\n<section id=\"truncatechars-html\">\n<span id=\"std-templatefilter-truncatechars_html\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">truncatechars_html</span></code><a class=\"heading-anchor\" href=\"#truncatechars-html\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>类似于 <a class=\"reference internal\" href=\"#std-templatefilter-truncatechars\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">truncatechars</span></code></a>，只是它能识别 HTML 标签。任何在字符串中打开但在截断点之前没有关闭的标签都会在截断后立即关闭。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">truncatechars_html</span><span class=\"o\">:</span><span class=\"m\">7</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&lt;p&gt;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&lt;/p&gt;&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&lt;p&gt;Joel</span> <span class=\"pre\">i…&lt;/p&gt;&quot;</span></code>。</p>\n<p>HTML 内容中的新行将被保留。</p>\n<aside class=\"admonition-size-of-input-string admonition\">\n<p class=\"admonition-title\">输入字符串的大小</p>\n<p>Processing large, potentially malformed HTML strings can be\nresource-intensive and impact service performance.</p>\n</aside>\n</section>\n<section id=\"truncatewords\">\n<span id=\"std-templatefilter-truncatewords\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">truncatewords</span></code><a class=\"heading-anchor\" href=\"#truncatewords\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>在一定字数后截断字符串。</p>\n<p><strong>参数：</strong> 要在之后截断的字数</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">truncatewords</span><span class=\"o\">:</span><span class=\"m\">2</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">…&quot;</span></code>。</p>\n<p>字符串内的新行将被删除。</p>\n</section>\n<section id=\"truncatewords-html\">\n<span id=\"std-templatefilter-truncatewords_html\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">truncatewords_html</span></code><a class=\"heading-anchor\" href=\"#truncatewords-html\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>类似于 <a class=\"reference internal\" href=\"#std-templatefilter-truncatewords\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">truncatewords</span></code></a>，只是它能识别 HTML 标签。任何在字符串中打开的标签，如果在截断点之前没有关闭，则会在截断后立即关闭。</p>\n<p>这比 <a class=\"reference internal\" href=\"#std-templatefilter-truncatewords\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">truncatewords</span></code></a> 效率低，所以只能在传递 HTML 文本时使用。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">truncatewords_html</span><span class=\"o\">:</span><span class=\"m\">2</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&lt;p&gt;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&lt;/p&gt;&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;&lt;p&gt;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">…&lt;/p&gt;&quot;</span></code>。</p>\n<p>HTML 内容中的新行将被保留。</p>\n<aside class=\"admonition-size-of-input-string admonition\">\n<p class=\"admonition-title\">输入字符串的大小</p>\n<p>Processing large, potentially malformed HTML strings can be\nresource-intensive and impact service performance.</p>\n</aside>\n</section>\n<section id=\"unordered-list\">\n<span id=\"std-templatefilter-unordered_list\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">unordered_list</span></code><a class=\"heading-anchor\" href=\"#unordered-list\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>递归地接受一个自我嵌套的列表，并返回一个 HTML 无序列表 -- <strong>不包括</strong> 开启和关闭的 <code class=\"docutils literal notranslate\"><span class=\"pre\">&lt;ul&gt;</span></code> 标签。</p>\n<p>假设列表的格式是正确的。例如，如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">var</span></code> 包含 <code class=\"docutils literal notranslate\"><span class=\"pre\">['States',</span> <span class=\"pre\">['Kansas',</span> <span class=\"pre\">['Lawrence',</span> <span class=\"pre\">'Topeka'],</span> <span class=\"pre\">'Illinois']]</span></code>，那么 <code class=\"docutils literal notranslate\"><span class=\"pre\">{{</span> <span class=\"pre\">var|unordered_list</span> <span class=\"pre\">}}</span></code> 将返回：</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\">li</span><span class=\"p\">&gt;</span>States\n<span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>Kansas\n        <span class=\"p\">&lt;</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n                <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>Lawrence<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n                <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>Topeka<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n        <span class=\"p\">&lt;</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>Illinois<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">ul</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;/</span><span class=\"nt\">li</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"upper\">\n<span id=\"std-templatefilter-upper\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">upper</span></code><a class=\"heading-anchor\" href=\"#upper\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将一个字符串转换为全大写。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">upper</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;JOEL</span> <span class=\"pre\">IS</span> <span class=\"pre\">A</span> <span class=\"pre\">SLUG&quot;</span></code>。</p>\n</section>\n<section id=\"urlencode\">\n<span id=\"std-templatefilter-urlencode\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">urlencode</span></code><a class=\"heading-anchor\" href=\"#urlencode\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>转义一个值用于 URL。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">urlencode</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https://www.example.org/foo?a=b&amp;c=d&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https%3A//www.example.org/foo%3Fa%3Db%26c%3Dd&quot;</span></code>。</p>\n<p>可以提供一个可选的参数，包含不应该被转义的字符。</p>\n<p>如果没有提供，将假定 '/' 字符是安全的。当应该转义 <em>所有</em> 字符时，可以提供一个空字符串。例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">urlencode</span><span class=\"s2\">:&quot;&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https://www.example.org/&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;https%3A%2F%2Fwww.example.org%2F&quot;</span></code>。</p>\n</section>\n<section id=\"urlize\">\n<span id=\"std-templatefilter-urlize\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">urlize</span></code><a class=\"heading-anchor\" href=\"#urlize\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>将文本中的 URL 和电子邮件地址转换为可点击的链接。</p>\n<p>此模板标签适用于以 <code class=\"docutils literal notranslate\"><span class=\"pre\">http://</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">https://</span></code> 或 <code class=\"docutils literal notranslate\"><span class=\"pre\">www.</span></code> 开头的链接。例如，<code class=\"docutils literal notranslate\"><span class=\"pre\">https://djangocon.eu</span></code> 会被转换，但 <code class=\"docutils literal notranslate\"><span class=\"pre\">djangocon.eu</span></code> 不会。</p>\n<p>它还支持以原始顶级域（<code class=\"docutils literal notranslate\"><span class=\"pre\">.com</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">.edu</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">.gov</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">.int</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">.mil</span></code>、<code class=\"docutils literal notranslate\"><span class=\"pre\">.net</span></code> 和 <code class=\"docutils literal notranslate\"><span class=\"pre\">.org</span></code>）之一结尾的纯域链接。例如，<code class=\"docutils literal notranslate\"><span class=\"pre\">djangoproject.com</span></code> 被转换。</p>\n<p>链接可以有尾部的标点符号（句号、逗号、闭括号），也可以有前面的标点符号（开头的小括号），<code class=\"docutils literal notranslate\"><span class=\"pre\">urlize</span></code> 仍然会做正确的事情。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">urlize</span></code> 产生的链接有一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">rel=&quot;nofollow&quot;</span></code> 属性。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">urlize</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Check</span> <span class=\"pre\">out</span> <span class=\"pre\">www.djangoproject.com&quot;</span></code>, the output will be:</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>Check out <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;http://www.djangoproject.com&quot;</span> <span class=\"na\">rel</span><span class=\"o\">=</span><span class=\"s\">&quot;nofollow&quot;</span><span class=\"p\">&gt;</span>www.djangoproject.com<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Deprecated since version 6.0: </span>The default protocol when none is provided will change from HTTP to HTTPS\nin Django 7.0. Hence, the output will become:</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>Check out <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;https://www.djangoproject.com&quot;</span> <span class=\"na\">rel</span><span class=\"o\">=</span><span class=\"s\">&quot;nofollow&quot;</span><span class=\"p\">&gt;</span>www.djangoproject.com<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Set the transitional setting <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-URLIZE_ASSUME_HTTPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">URLIZE_ASSUME_HTTPS</span></code></a> to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> to\nopt into using HTTPS during the Django 6.x release cycle.</p>\n</aside>\n<p>除了网页链接，<code class=\"docutils literal notranslate\"><span class=\"pre\">urlize</span></code> 还将电子邮件地址转换为 <code class=\"docutils literal notranslate\"><span class=\"pre\">mailto:</span></code> 链接。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Send</span> <span class=\"pre\">questions</span> <span class=\"pre\">to</span> <span class=\"pre\">foo&#64;example.com&quot;</span></code>，输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Send</span> <span class=\"pre\">questions</span> <span class=\"pre\">to</span> <span class=\"pre\">&lt;a</span> <span class=\"pre\">href=&quot;mailto:foo&#64;example.com&quot;&gt;foo&#64;example.com&lt;/a&gt;&quot;</span></code>。</p>\n<p><code class=\"docutils literal notranslate\"><span class=\"pre\">urlize</span></code> 过滤器还可以使用一个可选的参数 <code class=\"docutils literal notranslate\"><span class=\"pre\">autoescape</span></code>。如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">autoescape</span></code> 为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，则链接文本和 URL 将使用 Django 内置的 <a class=\"reference internal\" href=\"#std-templatefilter-escape\"><code class=\"xref std std-tfilter docutils literal notranslate\"><span class=\"pre\">escape</span></code></a> 过滤器进行转义。<code class=\"docutils literal notranslate\"><span class=\"pre\">autoescape</span></code> 的默认值是 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>。</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\">urlize</span></code> 应用于已经包含 HTML 标记的文本，或者应用于包含单引号（<code class=\"docutils literal notranslate\"><span class=\"pre\">'</span></code>）的电子邮件地址，那么事情就不会像预期的那样进行。只对纯文本应用此过滤器。</p>\n</aside>\n</section>\n<section id=\"urlizetrunc\">\n<span id=\"std-templatefilter-urlizetrunc\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">urlizetrunc</span></code><a class=\"heading-anchor\" href=\"#urlizetrunc\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>像 <a class=\"reference internal\" href=\"#urlize\">urlize</a> 一样，将 URL 和电子邮件地址转换为可点击的链接，但会截断长于给定字符限制的 URL。</p>\n<p><strong>参数：</strong> 链接文本应截断的字符数，包括必要时添加的省略号。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">urlizetrunc</span><span class=\"o\">:</span><span class=\"m\">15</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>If <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> is <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Check</span> <span class=\"pre\">out</span> <span class=\"pre\">www.djangoproject.com&quot;</span></code>, the output would be:</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>Check out <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;http://www.djangoproject.com&quot;</span> <span class=\"na\">rel</span><span class=\"o\">=</span><span class=\"s\">&quot;nofollow&quot;</span><span class=\"p\">&gt;</span>www.djangoproj…<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<aside class=\"version-note version-deprecated\" data-version=\"6.0\">\n<p class=\"version-note-title\">Deprecated since Django 6.0</p><p><span class=\"versionmodified deprecated\">Deprecated since version 6.0: </span>The default protocol when none is provided will change from HTTP to HTTPS\nin Django 7.0. Hence, the output will become:</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>Check out <span class=\"p\">&lt;</span><span class=\"nt\">a</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;https://www.djangoproject.com&quot;</span> <span class=\"na\">rel</span><span class=\"o\">=</span><span class=\"s\">&quot;nofollow&quot;</span><span class=\"p\">&gt;</span>www.djangoproj…<span class=\"p\">&lt;/</span><span class=\"nt\">a</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>Set the transitional setting <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-URLIZE_ASSUME_HTTPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">URLIZE_ASSUME_HTTPS</span></code></a> to <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code> to\nopt into using HTTPS during the Django 6.x release cycle.</p>\n</aside>\n<p>和 <a class=\"reference internal\" href=\"#urlize\">urlize</a> 一样，这个过滤器只能应用于纯文本。</p>\n</section>\n<section id=\"wordcount\">\n<span id=\"std-templatefilter-wordcount\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">wordcount</span></code><a class=\"heading-anchor\" href=\"#wordcount\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>返回单词的数量。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">wordcount</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug&quot;</span></code>，则输出将是 <code class=\"docutils literal notranslate\"><span class=\"pre\">4</span></code>。</p>\n</section>\n<section id=\"wordwrap\">\n<span id=\"std-templatefilter-wordwrap\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">wordwrap</span></code><a class=\"heading-anchor\" href=\"#wordwrap\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>以指定的行长度包装文字。</p>\n<p><strong>参数：</strong> 包裹文本的字符数</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">wordwrap</span><span class=\"o\">:</span><span class=\"m\">5</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<p>如果 <code class=\"docutils literal notranslate\"><span class=\"pre\">value</span></code> 是 <code class=\"docutils literal notranslate\"><span class=\"pre\">Joel</span> <span class=\"pre\">is</span> <span class=\"pre\">a</span> <span class=\"pre\">slug</span></code>，输出将是：</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>Joel\nis a\nslug\n</code></pre></div>\n</section>\n<section id=\"yesno\">\n<span id=\"std-templatefilter-yesno\"></span><h3><code class=\"docutils literal notranslate\"><span class=\"pre\">yesno</span></code><a class=\"heading-anchor\" href=\"#yesno\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<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> 值映射到字符串 “yes”、“no”、“maybe” 或以逗号分隔的列表形式传递的自定义映射，并根据值返回其中一个字符串。</p>\n<p>例如：</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=\"cp\">{{</span> <span class=\"nv\">value</span><span class=\"o\">|</span><span class=\"nf\">yesno</span><span class=\"s2\">:&quot;yeah,no,maybe&quot;</span> <span class=\"cp\">}}</span>\n</code></pre></div>\n<div class=\"table-scroll\" role=\"region\" tabindex=\"0\" aria-label=\"Table\"><table class=\"docutils align-default\">\n<thead>\n<tr class=\"row-odd\"><th class=\"head\"><p>值</p></th>\n<th class=\"head\"><p>参数</p></th>\n<th class=\"head\"><p>输出</p></th>\n</tr>\n</thead>\n<tbody>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p></td>\n<td></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">yes</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;yeah,no,maybe&quot;</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">yeah</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">False</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;yeah,no,maybe&quot;</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">no</span></code></p></td>\n</tr>\n<tr class=\"row-odd\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;yeah,no,maybe&quot;</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">maybe</span></code></p></td>\n</tr>\n<tr class=\"row-even\"><td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">None</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">&quot;yeah,no&quot;</span></code></p></td>\n<td><p><code class=\"docutils literal notranslate\"><span class=\"pre\">no</span></code> （如果没有给出 <code class=\"docutils literal notranslate\"><span class=\"pre\">None</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></td>\n</tr>\n</tbody>\n</table>\n</div>\n</section>\n</section>\n<section id=\"internationalization-tags-and-filters\">\n<h2>国际化标签和过滤器<a class=\"heading-anchor\" href=\"#internationalization-tags-and-filters\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 提供了模板标签和过滤器来控制模板中的 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/\"><span class=\"doc\">国际化</span></a> 的各个环节。它们允许对翻译、格式化和时区转换进行细化控制。</p>\n<section id=\"i18n\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">i18n</span></code><a class=\"heading-anchor\" href=\"#i18n\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>该库允许在模板中指定可翻译的文本。要启用它，请将 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-USE_I18N\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_I18N</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，然后用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">load</span> <span class=\"pre\">i18n</span> <span class=\"pre\">%}</span></code> 加载它。</p>\n<p>参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/translation/#specifying-translation-strings-in-template-code\"><span class=\"std std-ref\">在模板代码中国际化</span></a>。</p>\n</section>\n<section id=\"l10n\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">l10n</span></code><a class=\"heading-anchor\" href=\"#l10n\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>这个库提供了在模板中本地化值的控制。你只需要使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">load</span> <span class=\"pre\">l10n</span> <span class=\"pre\">%}</span></code> 来加载这个库。</p>\n<p>参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/formatting/#topic-l10n-templates\"><span class=\"std std-ref\">在模板中控制本地化</span></a>。</p>\n</section>\n<section id=\"tz\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">tz</span></code><a class=\"heading-anchor\" href=\"#tz\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>这个库提供了对模板中时区转换的控制。和 <code class=\"docutils literal notranslate\"><span class=\"pre\">l10n</span></code> 一样，你只需要使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">load</span> <span class=\"pre\">tz</span> <span class=\"pre\">%}</span></code> 加载该库，但你通常也会将 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-USE_TZ\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">USE_TZ</span></code></a> 设置为 <code class=\"docutils literal notranslate\"><span class=\"pre\">True</span></code>，这样就会默认转换为当地时间。</p>\n<p>参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/i18n/timezones/#time-zones-in-templates\"><span class=\"std std-ref\">模板中有时区的输出</span></a>。</p>\n</section>\n</section>\n<section id=\"other-tags-and-filters-libraries\">\n<h2>其他标签和过滤器库<a class=\"heading-anchor\" href=\"#other-tags-and-filters-libraries\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h2>\n<p>Django 自带了一些其他的模板标签库，你必须在你的 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-INSTALLED_APPS\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">INSTALLED_APPS</span></code></a> 配置中明确启用，并在你的模板中用 <a class=\"reference internal\" href=\"#std-templatetag-load\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">{%</span> <span class=\"pre\">load</span> <span class=\"pre\">%}</span></code></a> 标签启用。</p>\n<section id=\"django-contrib-humanize\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">django.contrib.humanize</span></code><a class=\"heading-anchor\" href=\"#django-contrib-humanize\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<p>一组 Django 模板过滤器，用于给数据添加 “人情味”。参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/contrib/humanize/\"><span class=\"doc\">django.contrib.humanize</span></a>。</p>\n</section>\n<section id=\"static\">\n<h3><code class=\"docutils literal notranslate\"><span class=\"pre\">static</span></code><a class=\"heading-anchor\" href=\"#static\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h3>\n<section id=\"std-templatetag-static\">\n<span id=\"id7\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">static</span></code><a class=\"heading-anchor\" href=\"#std-templatetag-static\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>要链接到保存在 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-STATIC_ROOT\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_ROOT</span></code></a> 中的静态文件，Django 提供了一个 <a class=\"reference internal\" href=\"#std-templatetag-static\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">static</span></code></a> 模板标签。如果安装了 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/contrib/staticfiles/#module-django.contrib.staticfiles\" title=\"django.contrib.staticfiles: An app for handling static files.\"><code class=\"xref py py-mod docutils literal notranslate\"><span class=\"pre\">django.contrib.staticfiles</span></code></a> 应用程序，该标签将使用 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-STORAGES\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STORAGES</span></code></a> 中由 <code class=\"docutils literal notranslate\"><span class=\"pre\">staticfiles</span></code> 指定的存储的 <code class=\"docutils literal notranslate\"><span class=\"pre\">url()</span></code> 方法来提供文件。例如：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">static</span> <span class=\"s1\">&#39;images/hi.jpg&#39;</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;Hi!&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>它还可以使用标准的上下文变量，例如，假设一个 <code class=\"docutils literal notranslate\"><span class=\"pre\">user_stylesheet</span></code> 变量被传递给模板：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">link</span> <span class=\"na\">rel</span><span class=\"o\">=</span><span class=\"s\">&quot;stylesheet&quot;</span> <span class=\"na\">href</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">static</span> <span class=\"nv\">user_stylesheet</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span> <span class=\"na\">media</span><span class=\"o\">=</span><span class=\"s\">&quot;screen&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>如果你想获取静态 URL 而不显示它，可以使用稍微不同的调用方式：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">static</span> <span class=\"s2\">&quot;images/hi.jpg&quot;</span> <span class=\"k\">as</span> <span class=\"nv\">myphoto</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">myphoto</span> <span class=\"cp\">}}</span><span class=\"s\">&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;Hi!&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<aside class=\"admonition-using-jinja2-templates admonition\">\n<p class=\"admonition-title\">使用 Jinja2 模板？</p>\n<p>参见 <a class=\"reference internal\" href=\"/zh-hans/6.1/topics/templates/#django.template.backends.jinja2.Jinja2\" title=\"django.template.backends.jinja2.Jinja2\"><code class=\"xref py py-class docutils literal notranslate\"><span class=\"pre\">Jinja2</span></code></a>，了解如何在 Jinja2 中使用 <code class=\"docutils literal notranslate\"><span class=\"pre\">static</span></code> 标签。</p>\n</aside>\n</section>\n<section id=\"get-static-prefix\">\n<span id=\"std-templatetag-get_static_prefix\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">get_static_prefix</span></code><a class=\"heading-anchor\" href=\"#get-static-prefix\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>你应该更喜欢使用 <a class=\"reference internal\" href=\"#std-templatetag-static\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">static</span></code></a> 模板标签，但是如果你需要更多地控制 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-STATIC_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">STATIC_URL</span></code></a> 被注入到模板的位置和方式，你可以使用 <a class=\"reference internal\" href=\"#std-templatetag-get_static_prefix\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">get_static_prefix</span></code></a> 模板标签：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">get_static_prefix</span> <span class=\"cp\">%}</span><span class=\"s\">images/hi.jpg&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;Hi!&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>还有一种第二种形式，如果你需要多次使用该值，可以使用它来避免额外的处理：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"cp\">%}</span>\n<span class=\"cp\">{%</span> <span class=\"k\">get_static_prefix</span> <span class=\"k\">as</span> <span class=\"nv\">STATIC_PREFIX</span> <span class=\"cp\">%}</span>\n\n<span class=\"p\">&lt;</span><span class=\"nt\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">STATIC_PREFIX</span> <span class=\"cp\">}}</span><span class=\"s\">images/hi.jpg&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;Hi!&quot;</span><span class=\"p\">&gt;</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">img</span> <span class=\"na\">src</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{{</span> <span class=\"nv\">STATIC_PREFIX</span> <span class=\"cp\">}}</span><span class=\"s\">images/hi2.jpg&quot;</span> <span class=\"na\">alt</span><span class=\"o\">=</span><span class=\"s\">&quot;Hello!&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n</section>\n<section id=\"get-media-prefix\">\n<span id=\"std-templatetag-get_media_prefix\"></span><h4><code class=\"docutils literal notranslate\"><span class=\"pre\">get_media_prefix</span></code><a class=\"heading-anchor\" href=\"#get-media-prefix\"><span class=\"visually-hidden\">Link to this heading</span><span aria-hidden=\"true\">#</span></a></h4>\n<p>类似于 <a class=\"reference internal\" href=\"#std-templatetag-get_static_prefix\"><code class=\"xref std std-ttag docutils literal notranslate\"><span class=\"pre\">get_static_prefix</span></code></a>，<code class=\"docutils literal notranslate\"><span class=\"pre\">get_media_prefix</span></code> 用媒体前缀 <a class=\"reference internal\" href=\"/zh-hans/6.1/ref/settings/#std-setting-MEDIA_URL\"><code class=\"xref std std-setting docutils literal notranslate\"><span class=\"pre\">MEDIA_URL</span></code></a> 填充一个模板变量，例如：</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=\"cp\">{%</span> <span class=\"k\">load</span> <span class=\"nv\">static</span> <span class=\"cp\">%}</span>\n<span class=\"p\">&lt;</span><span class=\"nt\">body</span> <span class=\"na\">data-media-url</span><span class=\"o\">=</span><span class=\"s\">&quot;</span><span class=\"cp\">{%</span> <span class=\"k\">get_media_prefix</span> <span class=\"cp\">%}</span><span class=\"s\">&quot;</span><span class=\"p\">&gt;</span>\n</code></pre></div>\n<p>通过将值存储在数据属性中，我们可以确保在 JavaScript 上下文中使用该值时适当地进行转义。</p>\n</section>\n</section>\n</section>","rootId":"built-in-template-tags-and-filters","toc":[{"title":"内置标签参考","anchor":"built-in-tag-reference","children":[{"title":"autoescape","anchor":"autoescape","children":[]},{"title":"block","anchor":"block","children":[]},{"title":"comment","anchor":"comment","children":[]},{"title":"csrf_token","anchor":"csrf-token","children":[]},{"title":"csp_nonce_attr","anchor":"csp-nonce-attr","children":[]},{"title":"cycle","anchor":"cycle","children":[]},{"title":"debug","anchor":"debug","children":[]},{"title":"extends","anchor":"extends","children":[]},{"title":"filter","anchor":"filter","children":[]},{"title":"firstof","anchor":"firstof","children":[]},{"title":"for","anchor":"for","children":[]},{"title":"for ... empty","anchor":"for-empty","children":[]},{"title":"if","anchor":"if","children":[{"title":"布尔操作","anchor":"boolean-operators","children":[{"title":"== 运算符","anchor":"operator","children":[]},{"title":"!= 运算符","anchor":"id1","children":[]},{"title":"< 运算符","anchor":"id2","children":[]},{"title":"> 运算符","anchor":"id3","children":[]},{"title":"<= 运算符","anchor":"id4","children":[]},{"title":">= 运算符","anchor":"id5","children":[]},{"title":"in 运算符","anchor":"in-operator","children":[]},{"title":"not in 操作符","anchor":"not-in-operator","children":[]},{"title":"is 运算符","anchor":"is-operator","children":[]},{"title":"is not 运算符","anchor":"is-not-operator","children":[]}]},{"title":"过滤器","anchor":"filters","children":[]},{"title":"复合表达式","anchor":"complex-expressions","children":[]}]},{"title":"ifchanged","anchor":"ifchanged","children":[]},{"title":"include","anchor":"include","children":[]},{"title":"load","anchor":"load","children":[]},{"title":"lorem","anchor":"lorem","children":[]},{"title":"now","anchor":"now","children":[]},{"title":"partial","anchor":"partial","children":[]},{"title":"partialdef","anchor":"partialdef","children":[]},{"title":"querystring","anchor":"querystring","children":[{"title":"基本用法","anchor":"basic-usage","children":[]},{"title":"设置项","anchor":"setting-items","children":[]},{"title":"删除项","anchor":"removing-items","children":[]},{"title":"处理列表","anchor":"handling-lists","children":[]},{"title":"Customizing the base QueryDict","anchor":"customizing-the-base-querydict","children":[]},{"title":"动态用法","anchor":"dynamic-usage","children":[]}]},{"title":"regroup","anchor":"regroup","children":[{"title":"对其他属性进行分组","anchor":"grouping-on-other-properties","children":[]}]},{"title":"resetcycle","anchor":"resetcycle","children":[]},{"title":"spaceless","anchor":"spaceless","children":[]},{"title":"templatetag","anchor":"templatetag","children":[]},{"title":"url","anchor":"url","children":[]},{"title":"verbatim","anchor":"verbatim","children":[]},{"title":"widthratio","anchor":"widthratio","children":[]},{"title":"with","anchor":"with","children":[]}]},{"title":"内置过滤器参考","anchor":"built-in-filter-reference","children":[{"title":"add","anchor":"add","children":[]},{"title":"addslashes","anchor":"addslashes","children":[]},{"title":"capfirst","anchor":"capfirst","children":[]},{"title":"center","anchor":"center","children":[]},{"title":"cut","anchor":"cut","children":[]},{"title":"date","anchor":"date","children":[]},{"title":"default","anchor":"default","children":[]},{"title":"default_if_none","anchor":"default-if-none","children":[]},{"title":"dictsort","anchor":"dictsort","children":[]},{"title":"dictsortreversed","anchor":"dictsortreversed","children":[]},{"title":"divisibleby","anchor":"divisibleby","children":[]},{"title":"escape","anchor":"escape","children":[]},{"title":"escapejs","anchor":"escapejs","children":[]},{"title":"escapeseq","anchor":"escapeseq","children":[]},{"title":"filesizeformat","anchor":"filesizeformat","children":[]},{"title":"first","anchor":"first","children":[]},{"title":"floatformat","anchor":"floatformat","children":[]},{"title":"force_escape","anchor":"force-escape","children":[]},{"title":"get_digit","anchor":"get-digit","children":[]},{"title":"iriencode","anchor":"iriencode","children":[]},{"title":"join","anchor":"join","children":[]},{"title":"json_script","anchor":"json-script","children":[]},{"title":"last","anchor":"last","children":[]},{"title":"length","anchor":"length","children":[]},{"title":"linebreaks","anchor":"linebreaks","children":[]},{"title":"linebreaksbr","anchor":"linebreaksbr","children":[]},{"title":"linenumbers","anchor":"linenumbers","children":[]},{"title":"ljust","anchor":"ljust","children":[]},{"title":"lower","anchor":"lower","children":[]},{"title":"make_list","anchor":"make-list","children":[]},{"title":"phone2numeric","anchor":"phone2numeric","children":[]},{"title":"pluralize","anchor":"pluralize","children":[]},{"title":"pprint","anchor":"pprint","children":[]},{"title":"random","anchor":"random","children":[]},{"title":"rjust","anchor":"rjust","children":[]},{"title":"safe","anchor":"safe","children":[]},{"title":"safeseq","anchor":"safeseq","children":[]},{"title":"slice","anchor":"slice","children":[]},{"title":"slugify","anchor":"slugify","children":[]},{"title":"stringformat","anchor":"stringformat","children":[]},{"title":"striptags","anchor":"striptags","children":[]},{"title":"time","anchor":"time","children":[]},{"title":"timesince","anchor":"timesince","children":[]},{"title":"timeuntil","anchor":"timeuntil","children":[]},{"title":"title","anchor":"title","children":[]},{"title":"truncatechars","anchor":"truncatechars","children":[]},{"title":"truncatechars_html","anchor":"truncatechars-html","children":[]},{"title":"truncatewords","anchor":"truncatewords","children":[]},{"title":"truncatewords_html","anchor":"truncatewords-html","children":[]},{"title":"unordered_list","anchor":"unordered-list","children":[]},{"title":"upper","anchor":"upper","children":[]},{"title":"urlencode","anchor":"urlencode","children":[]},{"title":"urlize","anchor":"urlize","children":[]},{"title":"urlizetrunc","anchor":"urlizetrunc","children":[]},{"title":"wordcount","anchor":"wordcount","children":[]},{"title":"wordwrap","anchor":"wordwrap","children":[]},{"title":"yesno","anchor":"yesno","children":[]}]},{"title":"国际化标签和过滤器","anchor":"internationalization-tags-and-filters","children":[{"title":"i18n","anchor":"i18n","children":[]},{"title":"l10n","anchor":"l10n","children":[]},{"title":"tz","anchor":"tz","children":[]}]},{"title":"其他标签和过滤器库","anchor":"other-tags-and-filters-libraries","children":[{"title":"django.contrib.humanize","anchor":"django-contrib-humanize","children":[]},{"title":"static","anchor":"static","children":[{"title":"static","anchor":"std-templatetag-static","children":[]},{"title":"get_static_prefix","anchor":"get-static-prefix","children":[]},{"title":"get_media_prefix","anchor":"get-media-prefix","children":[]}]}]}],"breadcrumbs":[{"docname":"ref/index","title":"API 参考","url":"/zh-hans/6.1/ref/"},{"docname":"ref/templates/index","title":"模板","url":"/zh-hans/6.1/ref/templates/"}],"prev":{"docname":"ref/templates/language","title":"Django 模板语言","url":"/zh-hans/6.1/ref/templates/language/"},"next":{"docname":"ref/templates/api","title":"Django 模板语言：对于 Python 开发者","url":"/zh-hans/6.1/ref/templates/api/"},"formats":{"html":"/zh-hans/6.1/ref/templates/builtins/","markdown":"/zh-hans/6.1/ref/templates/builtins.md","json":"/zh-hans/6.1/ref/templates/builtins.json"},"source":"https://github.com/django/django/blob/stable/6.1.x/docs/ref/templates/builtins.txt","official":"https://docs.djangoproject.com/zh-hans/6.1/ref/templates/builtins/","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"]}