<!DOCTYPE html>

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

    <title>組み込みテンプレートタグとフィルタ &#8212; Django 5.2.9 ドキュメント</title>
    <link rel="stylesheet" type="text/css" href="../../_static/pygments.css?v=34bb78ad" />
    <link rel="stylesheet" type="text/css" href="../../_static/default.css?v=bf4d74af" />
    <script src="../../_static/documentation_options.js?v=871dbda0"></script>
    <script src="../../_static/doctools.js?v=9bcbadda"></script>
    <script src="../../_static/sphinx_highlight.js?v=dc90522c"></script>
    <script src="../../_static/translations.js?v=4755f45a"></script>
    <link rel="index" title="索引" href="../../genindex.html" />
    <link rel="search" title="検索" href="../../search.html" />
    <link rel="next" title="Python プログラマーのための Django テンプレート言語" href="api.html" />
    <link rel="prev" title="Django テンプレート言語" href="language.html" />



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

  </head><body>

    <div class="document">
  <div id="custom-doc" class="yui-t6">
    <div id="hd">
      <h1><a href="../../index.html">Django 5.2.9 ドキュメント</a></h1>
      <div id="global-nav">
        <a title="Home page" href="../../index.html">Home</a>  |
        <a title="Table of contents" href="../../contents.html">Table of contents</a>  |
        <a title="Global index" href="../../genindex.html">Index</a>  |
        <a title="Module index" href="../../py-modindex.html">Modules</a>
      </div>
      <div class="nav">
    &laquo; <a href="language.html" title="Django テンプレート言語">previous</a>
     |
    <a href="../index.html" title="API リファレンス" accesskey="U">up</a>
   |
    <a href="api.html" title="Python プログラマーのための Django テンプレート言語">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="ref-templates-builtins">
            
  <section id="s-built-in-template-tags-and-filters">
<span id="built-in-template-tags-and-filters"></span><h1>組み込みテンプレートタグとフィルタ<a class="headerlink" href="#built-in-template-tags-and-filters" title="Link to this heading">¶</a></h1>
<p>このドキュメントでは、 Django の組み込みテンプレートタグとフィルタについて述べます。 また <a class="reference internal" href="../contrib/admin/admindocs.html"><span class="doc">自動ドキュメンテーション</span></a> を使えばインストールされている組み込みタグとカスタムタグのドキュメントを読めるのでお勧めです。</p>
<section id="s-built-in-tag-reference">
<span id="s-ref-templates-builtins-tags"></span><span id="built-in-tag-reference"></span><span id="ref-templates-builtins-tags"></span><h2>組み込みタグリファレンス<a class="headerlink" href="#built-in-tag-reference" title="Link to this heading">¶</a></h2>
<section id="s-autoescape">
<span id="s-std-templatetag-autoescape"></span><span id="autoescape"></span><span id="std-templatetag-autoescape"></span><h3><code class="docutils literal notranslate"><span class="pre">autoescape</span></code><a class="headerlink" href="#autoescape" title="Link to this heading">¶</a></h3>
<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>
<p>使用例：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">autoescape</span> <span class="nv">on</span> <span class="cp">%}</span>
    <span class="cp">{{</span> <span class="nv">body</span> <span class="cp">}}</span>
<span class="cp">{%</span> <span class="k">endautoescape</span> <span class="cp">%}</span>
</pre></div>
</div>
<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>
<p>ただ一つの例外は、すでにエスケープに関して &quot;safe&quot; としてマークされている変数です。変数は、その変数に値を代入するコードによって <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; とマークされる可能性があります。</p>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">autoescape</span> <span class="nv">off</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endautoescape</span> <span class="cp">%}</span>
</pre></div>
</div>
<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> のため、各項目をエスケープせずに)、その結果を safe としてマークするからです。その後、この safe な結果が <a class="reference internal" href="#std-templatefilter-escape"><code class="xref std std-tfilter docutils literal notranslate"><span class="pre">escape</span></code></a> フィルタに送られても2回目のエスケープはされません。</p>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">autoescape</span> <span class="nv">off</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endautoescape</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-block">
<span id="s-std-templatetag-block"></span><span id="block"></span><span id="std-templatetag-block"></span><h3><code class="docutils literal notranslate"><span class="pre">block</span></code><a class="headerlink" href="#block" title="Link to this heading">¶</a></h3>
<p>子テンプレートによってオーバーライドされる部分を定義します。詳しくは <a class="reference internal" href="language.html#template-inheritance"><span class="std std-ref">テンプレートの継承</span></a> を参照してください。</p>
</section>
<section id="s-comment">
<span id="s-std-templatetag-comment"></span><span id="comment"></span><span id="std-templatetag-comment"></span><h3><code class="docutils literal notranslate"><span class="pre">comment</span></code><a class="headerlink" href="#comment" title="Link to this heading">¶</a></h3>
<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>
<p>使用例：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
<span class="cp">{%</span> <span class="k">comment</span> <span class="s2">&quot;Optional note&quot;</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endcomment</span> <span class="cp">%}</span>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">comment</span></code> タグを入れ子にすることはできません。</p>
</section>
<section id="s-csrf-token">
<span id="s-std-templatetag-csrf_token"></span><span id="csrf-token"></span><span id="std-templatetag-csrf_token"></span><h3><code class="docutils literal notranslate"><span class="pre">csrf_token</span></code><a class="headerlink" href="#csrf-token" title="Link to this heading">¶</a></h3>
<p>このタグは CSRF の防止のために使用します。詳細は <a class="reference internal" href="../csrf.html"><span class="doc">クロスサイトリクエストフォージェリ (CSRF)</span></a> を参照してください。.</p>
</section>
<section id="s-cycle">
<span id="s-std-templatetag-cycle"></span><span id="cycle"></span><span id="std-templatetag-cycle"></span><h3><code class="docutils literal notranslate"><span class="pre">cycle</span></code><a class="headerlink" href="#cycle" title="Link to this heading">¶</a></h3>
<p>タグを実行するごとに、引数の文字列や変数から、順に一つずつ値を出力します。最初の処理では 1 番目の値が、その次に 2 番目の値、以下、4 個まで同様に処理されます。サイクルのすべての値を出力すると、再び 1 番目に戻って出力します。</p>
<p>このタグは特にループの中で役立ちます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
        ...
    <span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>この例では、繰り返しの最初の実行では <code class="docutils literal notranslate"><span class="pre">row1</span></code> クラスを参照する HTML が生成されます。 2 回目には  <code class="docutils literal notranslate"><span class="pre">row2</span></code>、 3 回目は再び <code class="docutils literal notranslate"><span class="pre">row1</span></code> というように、ループを繰り返すたびに交互に処理されます。</p>
<p>変数を使うこともできます。例えば、 <code class="docutils literal notranslate"><span class="pre">rowvalue1</span></code> と <code class="docutils literal notranslate"><span class="pre">rowvalue2</span></code> という2つのテンプレート変数がある場合、以下のように交互に値を変更できます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
        ...
    <span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>Variables included in the cycle will be escaped. You can disable auto-escaping
with:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
        ...
    <span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>下記のように、変数と文字列を混在させることもできます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
        ...
    <span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>場合によっては、次の値に進まずにサイクルの現在の値を参照したいこともあるでしょう。これを行うには、 <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">cycle</span> <span class="pre">%}</span></code> タグに名前を付けます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></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>
</pre></div>
</div>
<p>これ以降、コンテキスト変数としてサイクル名を参照することで、テンプレート内のどの場所にも現在のサイクルの値を挿入できます。元の <code class="docutils literal notranslate"><span class="pre">cycle</span></code> タグから独立してサイクルの値を次へ進めたいときには、変数の名前を指定して別の <code class="docutils literal notranslate"><span class="pre">cycle</span></code> タグを使用します。以下にテンプレートの例を挙げます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">tr</span><span class="p">&gt;</span>
    <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>
    <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>
<span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">tr</span><span class="p">&gt;</span>
    <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>
    <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>
<span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>これは以下のように出力されます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">tr</span><span class="p">&gt;</span>
    <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>
    <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>
<span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
<span class="p">&lt;</span><span class="nt">tr</span><span class="p">&gt;</span>
    <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>
    <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>
<span class="p">&lt;/</span><span class="nt">tr</span><span class="p">&gt;</span>
</pre></div>
</div>
<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>
<p>標準の設定において、 cycle タグに <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> はサイクルの初期設定を行うときサイクル内で使う値を初期化します。これは、入れ子となったループや include されたテンプレートで値を使う場合に問題になるかもしれません。もしあなたがサイクルを宣言したいだけで初期値を生成させたくない場合には、タグのキーワードの最後に <code class="docutils literal notranslate"><span class="pre">silent</span></code> を加えてください。以下に例を示します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
    <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>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<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>
<p>あるサイクルの定義において silent キーワードが使われているとき、後に続いて使われる cycle タグには自動的に silent が適用されます。次に示すテンプレートは、 2 番めの <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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></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="nv">silent</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">cycle</span> <span class="nv">rowcolors</span> <span class="cp">%}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-debug">
<span id="s-std-templatetag-debug"></span><span id="debug"></span><span id="std-templatetag-debug"></span><h3><code class="docutils literal notranslate"><span class="pre">debug</span></code><a class="headerlink" href="#debug" title="Link to this heading">¶</a></h3>
<p>現在のコンテキストやインポートモジュールを含むデバッグ情報を出力します。<a class="reference internal" href="../settings.html#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>
</section>
<section id="s-extends">
<span id="s-std-templatetag-extends"></span><span id="extends"></span><span id="std-templatetag-extends"></span><h3><code class="docutils literal notranslate"><span class="pre">extends</span></code><a class="headerlink" href="#extends" title="Link to this heading">¶</a></h3>
<p>このテンプレートが親テンプレートからの拡張であることを指示します。</p>
<p>このタグには 2 種類の使い方があります:</p>
<ul class="simple">
<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> (引用符つき) の場合、リテラル値 &quot;base.html&quot; を親テンプレートの名前として使います。</p></li>
<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>
</ul>
<p>詳しくは <a class="reference internal" href="language.html#template-inheritance"><span class="std std-ref">テンプレートの継承</span></a> を参照してください。</p>
<p>通常、テンプレート名はテンプレートローダーのルートディレクトリからの相対パスです。文字列引数には <code class="docutils literal notranslate"><span class="pre">./</span></code> または <code class="docutils literal notranslate"><span class="pre">../</span></code> で始まる相対パスを指定することもできます。例えば、以下のようなディレクトリ構造を仮定します：</p>
<div class="highlight-text notranslate"><div class="highlight"><pre><span></span>dir1/
    template.html
    base2.html
    my/
        base3.html
base1.html
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">template.html</span></code> では、以下のパスが有効です：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">extends</span> <span class="s2">&quot;./base2.html&quot;</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">extends</span> <span class="s2">&quot;../base1.html&quot;</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">extends</span> <span class="s2">&quot;./my/base3.html&quot;</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-filter">
<span id="s-std-templatetag-filter"></span><span id="filter"></span><span id="std-templatetag-filter"></span><h3><code class="docutils literal notranslate"><span class="pre">filter</span></code><a class="headerlink" href="#filter" title="Link to this heading">¶</a></h3>
<p>タグブロック内のコンテンツを、1 つまたは複数のフィルタに通します。複数のフィルタを使うときはパイプ（ &quot; | &quot; ）を使って連結します。フィルタには変数のように引数を与えることができます。</p>
<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>
<p>使用例：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    This text will be HTML-escaped, and will appear in all lowercase.
<span class="cp">{%</span> <span class="k">endfilter</span> <span class="cp">%}</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<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>
</div>
</section>
<section id="s-firstof">
<span id="s-std-templatetag-firstof"></span><span id="firstof"></span><span id="std-templatetag-firstof"></span><h3><code class="docutils literal notranslate"><span class="pre">firstof</span></code><a class="headerlink" href="#firstof" title="Link to this heading">¶</a></h3>
<p>最初の引数変数が &quot;false&quot; でない（つまり、存在し、空でなく、False の真偽値でなく、0 の数値でない）場合、その変数を出力します。渡された変数がすべて &quot;false&quot; の場合は何も出力しません。</p>
<p>使用例：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>上のコードは以下と等価です：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">if</span> <span class="nv">var1</span> <span class="cp">%}</span>
    <span class="cp">{{</span> <span class="nv">var1</span> <span class="cp">}}</span>
<span class="cp">{%</span> <span class="k">elif</span> <span class="nv">var2</span> <span class="cp">%}</span>
    <span class="cp">{{</span> <span class="nv">var2</span> <span class="cp">}}</span>
<span class="cp">{%</span> <span class="k">elif</span> <span class="nv">var3</span> <span class="cp">%}</span>
    <span class="cp">{{</span> <span class="nv">var3</span> <span class="cp">}}</span>
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>また、渡された変数がすべて False の場合のフォールバック値として、リテラル文字列を使うこともできます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>このタグは変数の値を自動エスケープします。自動エスケープを無効にするには下記のようにします：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">autoescape</span> <span class="nv">off</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endautoescape</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>一部の変数だけをエスケープするには、下記のようにします：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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> のように書くことで、出力を 1 つの変数内に格納することもできます。</p>
</section>
<section id="s-for">
<span id="s-std-templatetag-for"></span><span id="for"></span><span id="std-templatetag-for"></span><h3><code class="docutils literal notranslate"><span class="pre">for</span></code><a class="headerlink" href="#for" title="Link to this heading">¶</a></h3>
<p>配列の各項目をループし、コンテキスト変数でその項目を利用できるようにします。例えば、<code class="docutils literal notranslate"><span class="pre">athlete_list</span></code> で渡されたアスリートのリストを表示するには以下のようにします：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
<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>
    <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>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
<span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
</pre></div>
</div>
<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>
<p>リストのリストをループする必要がある場合は、各サブリストの値を個々の変数にアンパックします。たとえば、コンテキストに <code class="docutils literal notranslate"><span class="pre">points</span></code> という (x,y) 座標のリストが含まれている場合、以下のように点のリストを出力できます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    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>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>この方法は、辞書の各要素にアクセスしたい場合にも便利です。例えば <code class="docutils literal notranslate"><span class="pre">data</span></code> という辞書がある場合、以下のように辞書内のキーと値を表示できます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<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="language.html#template-variables"><span class="std std-ref">テンプレート変数のドキュメント</span></a> を参照してください。</p>
<p>for ループには、ループ内で使える多くの変数が設定されています:</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p>変数</p></th>
<th class="head"><p>説明</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.counter</span></code></p></td>
<td><p>現在のループカウンタ番号 ( 1 から順にカウント )</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.counter0</span></code></p></td>
<td><p>現在のループカウンタ番号 ( 0 から順にカウント )</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.revcounter</span></code></p></td>
<td><p>現在のループカウンタ値 ( 1 から順に、末尾からカウント)</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.revcounter0</span></code></p></td>
<td><p>現在のループカウンタ値 ( 0 から順に、末尾からカウント)</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.first</span></code></p></td>
<td><p>最初のループであれば True</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.last</span></code></p></td>
<td><p>最後のループであれば True</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.length</span></code></p></td>
<td><p>The length of the loop</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">forloop.parentloop</span></code></p></td>
<td><p>入れ子のループであるとき、現在のループを囲んでいる 1 つ上のループを表します。</p></td>
</tr>
</tbody>
</table>
<div class="versionchanged">
<span class="title">Changed in Django 6.0:</span> <p>The variable <code class="docutils literal notranslate"><span class="pre">forloop.length</span></code> was added.</p>
</div>
</section>
<section id="s-for-empty">
<span id="for-empty"></span><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="headerlink" href="#for-empty" title="Link to this heading">¶</a></h3>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
<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>
    <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>
<span class="cp">{%</span> <span class="k">empty</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
<span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>上記の例は以下のテンプレートと同等です。しかし <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">empty</span> <span class="pre">%}</span></code> を使ったほうが簡潔で、かつ高速になる場合もあります。：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
  <span class="cp">{%</span> <span class="k">if</span> <span class="nv">athlete_list</span> <span class="cp">%}</span>
    <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>
      <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>
    <span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
  <span class="cp">{%</span> <span class="k">else</span> <span class="cp">%}</span>
    <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>
  <span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
<span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
</pre></div>
</div>
</section>
<section id="s-if">
<span id="s-std-templatetag-if"></span><span id="if"></span><span id="std-templatetag-if"></span><h3><code class="docutils literal notranslate"><span class="pre">if</span></code><a class="headerlink" href="#if" title="Link to this heading">¶</a></h3>
<p><code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">if</span> <span class="pre">%}</span></code> タグは変数を評価し、その変数が &quot;true&quot; であるとき (すなわち変数が存在し、空ではなく、その値が False でないとき ) にブロックの内容を出力します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">if</span> <span class="nv">athlete_list</span> <span class="cp">%}</span>
    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>
<span class="cp">{%</span> <span class="k">elif</span> <span class="nv">athlete_in_locker_room_list</span> <span class="cp">%}</span>
    Athletes should be out of the locker room soon!
<span class="cp">{%</span> <span class="k">else</span> <span class="cp">%}</span>
    No athletes.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
<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>
<p>例にもあるように <code class="docutils literal notranslate"><span class="pre">if</span></code> タグはオプションで 1 個以上の <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">elif</span> <span class="pre">%}</span></code> 節、および 1 個の <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> はそれまでの評価結果がすべて True でなかった場合に表示されるコンテンツを定義します。</p>
<section id="s-boolean-operators">
<span id="boolean-operators"></span><h4>論理演算子<a class="headerlink" href="#boolean-operators" title="Link to this heading">¶</a></h4>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    Both athletes and coaches are available.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<span class="cp">{%</span> <span class="k">if</span> <span class="k">not</span> <span class="nv">athlete_list</span> <span class="cp">%}</span>
    There are no athletes.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<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>
    There are some athletes or some coaches.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<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>
    There are no athletes or there are some coaches.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<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>
    There are some athletes and absolutely no coaches.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
<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> が優先します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>これは以下のように解釈されます:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><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>
    <span class="o">...</span>
</pre></div>
</div>
<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>
<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>, and <code class="docutils literal notranslate"><span class="pre">is</span> <span class="pre">not</span></code> が使え、以下のように機能します:</p>
<section id="s-operator">
<span id="operator"></span><h5><code class="docutils literal notranslate"><span class="pre">==</span></code> 演算子<a class="headerlink" href="#operator" title="Link to this heading">¶</a></h5>
<p>等しい場合。例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if variable somevar equals the string &quot;x&quot;
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-id1">
<span id="id1"></span><h5><code class="docutils literal notranslate"><span class="pre">!=</span></code> 演算子<a class="headerlink" href="#id1" title="Link to this heading">¶</a></h5>
<p>等しくない場合。例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if variable somevar does not equal the string &quot;x&quot;,
  or if somevar is not found in the context
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-id2">
<span id="id2"></span><h5><code class="docutils literal notranslate"><span class="pre">&lt;</span></code> 演算子<a class="headerlink" href="#id2" title="Link to this heading">¶</a></h5>
<p>左辺が右辺より小さい場合。例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if variable somevar is less than 100.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-id3">
<span id="id3"></span><h5><code class="docutils literal notranslate"><span class="pre">&gt;</span></code> 演算子<a class="headerlink" href="#id3" title="Link to this heading">¶</a></h5>
<p>左辺が右辺より大きい場合。例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if variable somevar is greater than 0.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-id4">
<span id="id4"></span><h5><code class="docutils literal notranslate"><span class="pre">&lt;=</span></code> 演算子<a class="headerlink" href="#id4" title="Link to this heading">¶</a></h5>
<p>左辺が右辺の値以下の場合。例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if variable somevar is less than 100 or equal to 100.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-id5">
<span id="id5"></span><h5><code class="docutils literal notranslate"><span class="pre">&gt;=</span></code> 演算子<a class="headerlink" href="#id5" title="Link to this heading">¶</a></h5>
<p>左辺が右辺の値以上の場合。例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if variable somevar is greater than 1 or equal to 1.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-in-operator">
<span id="in-operator"></span><h5><code class="docutils literal notranslate"><span class="pre">in</span></code> 演算子<a class="headerlink" href="#in-operator" title="Link to this heading">¶</a></h5>
<p>左辺の値が右辺の値に含まれる場合。この演算子は多くのPythonコンテナデータ型によってサポートされており、指定された値がコンテナ内に存在するかどうかをチェックできます。以下に <code class="docutils literal notranslate"><span class="pre">x</span> <span class="pre">in</span> <span class="pre">y</span></code> がどのように解釈されるかの例をいくつか示します：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears since &quot;bc&quot; is a substring of &quot;abcdef&quot;
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<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>
  If greetings is a list or set, one element of which is the string
  &quot;hello&quot;, this will appear.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<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>
  If users is a QuerySet, this will appear if user is an
  instance that belongs to the QuerySet.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-not-in-operator">
<span id="not-in-operator"></span><h5><code class="docutils literal notranslate"><span class="pre">not</span> <span class="pre">in</span></code> 演算子<a class="headerlink" href="#not-in-operator" title="Link to this heading">¶</a></h5>
<p>左辺の値が右辺の値に含まれない場合。これは <code class="docutils literal notranslate"><span class="pre">in</span></code> 演算子の逆です。</p>
</section>
<section id="s-is-operator">
<span id="is-operator"></span><h5><code class="docutils literal notranslate"><span class="pre">is</span></code> 演算子<a class="headerlink" href="#is-operator" title="Link to this heading">¶</a></h5>
<p>オブジェクトの同一性。2つの値が同じオブジェクトかどうかをテストします。例：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if and only if somevar is True.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<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>
  This appears if somevar is None, or if somevar is not found in the context.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-is-not-operator">
<span id="is-not-operator"></span><h5><code class="docutils literal notranslate"><span class="pre">is</span> <span class="pre">not</span></code> 演算子<a class="headerlink" href="#is-not-operator" title="Link to this heading">¶</a></h5>
<p>オブジェクトの非同一性。2つの値が同じオブジェクトでないかどうかをテストします。これは <code class="docutils literal notranslate"><span class="pre">is</span></code> 演算子の否定です。例：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
  This appears if somevar is not True, or if somevar is not found in the
  context.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>

<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>
  This appears if and only if somevar is not None.
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
</section>
<section id="s-filters">
<span id="filters"></span><h4>フィルタ<a class="headerlink" href="#filters" title="Link to this heading">¶</a></h4>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
   You have lots of messages today!
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-complex-expressions">
<span id="complex-expressions"></span><h4>複雑な表現<a class="headerlink" href="#complex-expressions" title="Link to this heading">¶</a></h4>
<p>ここまでのすべてを組み合わせて複雑な式を作ることができます。このような式では、式を評価するときに演算子がどのようにグループ化されるか、すなわち優先順位の規則を理解することが重要です。演算子の優先順位は次のようになっています:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">or</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">and</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">not</span></code></p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">in</span></code></p></li>
<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>
</ul>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>...次のように解釈されます:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<p>比較演算子は Python や数学における記法のように、つないで書くことはできません。例えば次のような使い方はできません:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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)
</pre></div>
</div>
<p>このように使うべきです:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
</section>
</section>
<section id="s-ifchanged">
<span id="s-std-templatetag-ifchanged"></span><span id="ifchanged"></span><span id="std-templatetag-ifchanged"></span><h3><code class="docutils literal notranslate"><span class="pre">ifchanged</span></code><a class="headerlink" href="#ifchanged" title="Link to this heading">¶</a></h3>
<p>値が前回のループ実行時から変わっているかどうかを調べます。</p>
<p><code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">ifchanged</span> <span class="pre">%}</span></code> ブロックタグはループの内部で使います。このタグには 2 通りの使い方があります。</p>
<ol class="arabic">
<li><p>今回の出力内容が、前回の状態に対して変化しているときだけ表示します。例えば、日付の一覧を表示する場合に、月が変わったときだけ月名を表示したければ以下のようにします:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>

<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>
    <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>
    <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>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
</li>
<li><p>タグに 1 個以上の変数が与えられている場合、それぞれの変数について内容が変化したかどうかを調べます。例えば、以下の例では日付が変化したときには日付を表示し、日付と時刻が同時に変化したときだけ時刻も表示します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
    <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>
        <span class="cp">{{</span> <span class="nv">date.hour</span> <span class="cp">}}</span>
    <span class="cp">{%</span> <span class="k">endifchanged</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
</li>
</ol>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
<span class="s">        </span><span class="cp">{%</span> <span class="k">ifchanged</span> <span class="nv">match.ballot_id</span> <span class="cp">%}</span>
<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>
<span class="s">        </span><span class="cp">{%</span> <span class="k">else</span> <span class="cp">%}</span>
<span class="s">            gray</span>
<span class="s">        </span><span class="cp">{%</span> <span class="k">endifchanged</span> <span class="cp">%}</span>
<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>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-include">
<span id="s-std-templatetag-include"></span><span id="include"></span><span id="std-templatetag-include"></span><h3><code class="docutils literal notranslate"><span class="pre">include</span></code><a class="headerlink" href="#include" title="Link to this heading">¶</a></h3>
<p>テンプレートをロードし、現在のコンテキストを使って出力します。これはテンプレート内に他のテンプレートを取り込む（ “include” ）方法の一つです。</p>
<p>The template name can either be a variable or a hardcoded (quoted) string,
in either single or double quotes.</p>
<p>次の例では、 <code class="docutils literal notranslate"><span class="pre">&quot;foo/bar.html&quot;</span></code> という名前のテンプレートの内容を include します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">include</span> <span class="s2">&quot;foo/bar.html&quot;</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>通常、テンプレート名はテンプレートローダーのルートディレクトリからの相対パスです。 <a class="reference internal" href="#std-templatetag-extends"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">extends</span></code></a> タグで説明されているように、文字列引数には <code class="docutils literal notranslate"><span class="pre">./</span></code> または <code class="docutils literal notranslate"><span class="pre">../</span></code> で始まる相対パスを指定することもできます。</p>
<p>次の例では、変数 <code class="docutils literal notranslate"><span class="pre">template_name</span></code> の値をテンプレート名として、そのテンプレートの内容を include します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">include</span> <span class="nv">template_name</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>変数は、コンテキストを受け取る <code class="docutils literal notranslate"><span class="pre">render()</span></code> メソッドを持っていればオブジェクトでも構いません。これによって、コンテキスト内のコンパイル済みの <code class="docutils literal notranslate"><span class="pre">Template</span></code>  を参照できます。</p>
<p>さらに、この変数はテンプレート名のイテラブルにすることもできます。その場合、 <a class="reference internal" href="../../topics/templates.html#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>
<p>include されたテンプレートは、include した側のコンテキストにおいて解釈されます。以下の例は <code class="docutils literal notranslate"><span class="pre">&quot;Hello,</span> <span class="pre">John!&quot;</span></code> を出力します:</p>
<ul>
<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>
<li><p>テンプレート:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">include</span> <span class="s2">&quot;name_snippet.html&quot;</span> <span class="cp">%}</span>
</pre></div>
</div>
</li>
<li><p><code class="docutils literal notranslate"><span class="pre">name_snippet.html</span></code> テンプレート:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>!
</pre></div>
</div>
</li>
</ul>
<p>キーワード引数を使って、テンプレートに追加のコンテキストを渡すことができます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>あらかじめ準備された変数だけを使って (あるいは変数をまったく使わずに) 出力させたい場合は <code class="docutils literal notranslate"><span class="pre">only</span></code> オプションを使います。テンプレートを取り込むために、他の変数は利用できません:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<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>
<p>ブロックは取り込まれる <em>前に</em> 評価されます。ブロックを含んでいる他のテンプレートを取り込む場合、そのブロックは <em>すでに評価され、出力された結果</em> としてのブロックであり、たとえばテンプレートを継承したときのような、オーバーライド可能なブロックではありません。</p>
</div>
</section>
<section id="s-load">
<span id="s-std-templatetag-load"></span><span id="load"></span><span id="std-templatetag-load"></span><h3><code class="docutils literal notranslate"><span class="pre">load</span></code><a class="headerlink" href="#load" title="Link to this heading">¶</a></h3>
<p>カスタムのテンプレートタグセットを読み込みます。</p>
<p>例えば次のテンプレートは <code class="docutils literal notranslate"><span class="pre">somelibrary</span></code> 、そして <code class="docutils literal notranslate"><span class="pre">package</span></code> パッケージの <code class="docutils literal notranslate"><span class="pre">otherlibrary</span></code> に登録されたすべてのタグとフィルタを読み込みます。:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">load</span> <span class="nv">somelibrary</span> <span class="nv">package.otherlibrary</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>引数に <code class="docutils literal notranslate"><span class="pre">from</span></code> を使えば、ライブラリからフィルタやタグを個別に選んで読み込むことができます。以下の例では、 <code class="docutils literal notranslate"><span class="pre">foo</span></code>、<code class="docutils literal notranslate"><span class="pre">bar</span></code> という名前のテンプレートタグまたはフィルタを <code class="docutils literal notranslate"><span class="pre">somelibrary</span></code> から読み込みます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>詳しくは <a class="reference internal" href="../../howto/custom-template-tags.html"><span class="doc">カスタムタグとフィルタのライブラリ</span></a> を参照してください。</p>
</section>
<section id="s-lorem">
<span id="s-std-templatetag-lorem"></span><span id="lorem"></span><span id="std-templatetag-lorem"></span><h3><code class="docutils literal notranslate"><span class="pre">lorem</span></code><a class="headerlink" href="#lorem" title="Link to this heading">¶</a></h3>
<p>ランダムな&quot;lorem ipsum&quot; のラテン語テキストを表示させます。テンプレート内でサンプルデータを用意するのに便利です。</p>
<p>使い方:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">lorem</span> <span class="pre">%}</span></code> タグは 0 から 3 個の引数をとります:</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p>引数</p></th>
<th class="head"><p>説明</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">count</span></code></p></td>
<td><p>生成する単語または段落の数を指定する、数値または変数 (デフォルトは 1 ) 。</p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">method</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">w</span></code> のとき単語を、<code class="docutils literal notranslate"><span class="pre">p</span></code> のとき HTML の段落ブロック、<code class="docutils literal notranslate"><span class="pre">b</span></code> のときプレーンテキストの段落ブロックを生成します ( デフォルトは <code class="docutils literal notranslate"><span class="pre">b</span></code> )。</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">random</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">random</span></code> が与えられたとき、一般的な文章 ( &quot;Lorem ipsum dolor sit amet...&quot; ) を使わずにテキストを生成します。</p></td>
</tr>
</tbody>
</table>
<p>例:</p>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">lorem</span> <span class="pre">%}</span></code> は、一般的な &quot;lorem ipsum&quot; を出力します。</p></li>
<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> は一般的な &quot;lorem ipsum&quot; と 2 個のランダムな文章を、それぞれ HTML の <code class="docutils literal notranslate"><span class="pre">&lt;p&gt;</span></code> タグで括って出力します。</p></li>
<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> は 2 個のランダムなラテン単語を出力します。</p></li>
</ul>
</section>
<section id="s-now">
<span id="s-std-templatetag-now"></span><span id="now"></span><span id="std-templatetag-now"></span><h3><code class="docutils literal notranslate"><span class="pre">now</span></code><a class="headerlink" href="#now" title="Link to this heading">¶</a></h3>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>
</pre></div>
</div>
<p>文字列の中でフォーマット文字を普通の文字として扱いたい場合は、バックスラッシュ文字（ <code class="docutils literal notranslate"><span class="pre">\</span></code> ）でエスケープします。次の例では、 &quot;o&quot; と &quot;f&quot; をエスケープしています。そうしなければ、これらはそれぞれ年と時刻を表示するためのフォーマット文字とみなされるからです:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>
</pre></div>
</div>
<p>この表示結果は &quot;It is the 4th of September&quot; となります。</p>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<p>フォーマットはプリセット（ <a class="reference internal" href="../settings.html#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="../settings.html#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="../settings.html#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="../settings.html#std-setting-SHORT_DATETIME_FORMAT"><code class="xref std std-setting docutils literal notranslate"><span class="pre">SHORT_DATETIME_FORMAT</span></code></a> ）の中から 1 つを選ぶこともできます。 <a class="reference internal" href="../../topics/i18n/formatting.html"><span class="doc">表示形式のローカライズ</span></a> が有効なときは、プリセットフォーマットの内容は現在設定されているロケールによって変わります。たとえば、下記のようにします:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>It is <span class="cp">{%</span> <span class="k">now</span> <span class="s2">&quot;SHORT_DATETIME_FORMAT&quot;</span> <span class="cp">%}</span>
</pre></div>
</div>
</div>
<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> の書式が使えます。これは <a class="reference internal" href="../../topics/i18n/translation.html#std-templatetag-blocktranslate"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">blocktranslate</span></code></a> のようなテンプレートタグで <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">now</span> <span class="pre">%}</span></code> を使いたいときに役立ちます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
<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>
</pre></div>
</div>
</section>
<section id="s-partial">
<span id="s-std-templatetag-partial"></span><span id="partial"></span><span id="std-templatetag-partial"></span><h3><code class="docutils literal notranslate"><span class="pre">partial</span></code><a class="headerlink" href="#partial" title="Link to this heading">¶</a></h3>
<div class="versionadded">
<span class="title">New in Django 6.0.</span> </div>
<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
the matching partial at this location.</p>
<p>使い方:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">partial</span> <span class="nv">partial_name</span> <span class="cp">%}</span>
</pre></div>
</div>
<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>
<p>In the following example, a partial named <code class="docutils literal notranslate"><span class="pre">button</span></code> is defined and then
rendered three times:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">partialdef</span> <span class="nv">button</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endpartialdef</span> <span class="cp">%}</span>

<span class="cp">{%</span> <span class="k">partial</span> <span class="nv">button</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">partial</span> <span class="nv">button</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">partial</span> <span class="nv">button</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-partialdef">
<span id="s-std-templatetag-partialdef"></span><span id="partialdef"></span><span id="std-templatetag-partialdef"></span><h3><code class="docutils literal notranslate"><span class="pre">partialdef</span></code><a class="headerlink" href="#partialdef" title="Link to this heading">¶</a></h3>
<div class="versionadded">
<span class="title">New in Django 6.0.</span> </div>
<p>Defines a reusable template fragment that can be rendered multiple times within
the same template or accessed directly via <a class="reference internal" href="language.html#template-partials-direct-access"><span class="std std-ref">template loading or inclusion</span></a>.</p>
<p>使い方:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">partialdef</span> <span class="nv">partial_name</span> <span class="cp">%}</span>
    <span class="c">{# Reusable content. #}</span>
<span class="cp">{%</span> <span class="k">endpartialdef</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>The <code class="docutils literal notranslate"><span class="pre">partial_name</span></code> argument is required and must be a valid template
identifier.</p>
<p>In the following example, a new fragment named <code class="docutils literal notranslate"><span class="pre">card</span></code> is defined:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">partialdef</span> <span class="nv">card</span> <span class="cp">%}</span>
    <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>
        <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>
        <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>
    <span class="p">&lt;/</span><span class="nt">div</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endpartialdef</span> <span class="cp">%}</span>
</pre></div>
</div>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">partial</span> <span class="nv">card</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">partial</span> <span class="nv">card</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>To <a class="reference internal" href="language.html#template-partials-inline"><span class="std std-ref">render a fragment immediately in place</span></a>,
use the <code class="docutils literal notranslate"><span class="pre">inline</span></code> option. The partial is still stored and can be reused later.</p>
</section>
<section id="s-querystring">
<span id="s-std-templatetag-querystring"></span><span id="querystring"></span><span id="std-templatetag-querystring"></span><h3><code class="docutils literal notranslate"><span class="pre">querystring</span></code><a class="headerlink" href="#querystring" title="Link to this heading">¶</a></h3>
<p>提供されたパラメータに基づいて、URLエンコードされた形式のクエリ文字列を出力します。</p>
<p>This tag accepts positional arguments, which must be mappings (such as
<a class="reference internal" href="../request-response.html#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
are provided, <a class="reference internal" href="../request-response.html#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
default to construct the query string.</p>
<p>Positional arguments are processed sequentially, while keyword arguments are
treated as key-value pairs, applied last. Later arguments take precedence over
earlier ones, ensuring the most recent pairs are reflected in the final result.</p>
<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
links, and an empty result could prevent the page from reloading as expected.</p>
<div class="admonition-using-request-get-as-default admonition">
<p class="admonition-title"><code class="docutils literal notranslate"><span class="pre">request.GET</span></code> をデフォルトとして使う</p>
<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>
</div>
<div class="versionchanged">
<span class="title">Changed in Django 6.0:</span> <p>A <code class="docutils literal notranslate"><span class="pre">?</span></code> was prepended to the query string for empty results.</p>
</div>
<section id="s-basic-usage">
<span id="basic-usage"></span><h4>基本的な使用法<a class="headerlink" href="#basic-usage" title="Link to this heading">¶</a></h4>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">querystring</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>Outputs the current query string verbatim. So if the query string in the
request 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
current query string is empty, the output will be <code class="docutils literal notranslate"><span class="pre">?</span></code>.</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-setting-items">
<span id="setting-items"></span><h4>アイテムをセットする<a class="headerlink" href="#setting-items" title="Link to this heading">¶</a></h4>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-removing-items">
<span id="removing-items"></span><h4>アイテムを削除する<a class="headerlink" href="#removing-items" title="Link to this heading">¶</a></h4>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-handling-lists">
<span id="handling-lists"></span><h4>リストを扱う<a class="headerlink" href="#handling-lists" title="Link to this heading">¶</a></h4>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-customizing-the-base-querydict">
<span id="customizing-the-base-querydict"></span><h4>Customizing the base QueryDict<a class="headerlink" href="#customizing-the-base-querydict" title="Link to this heading">¶</a></h4>
<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
to replace <code class="docutils literal notranslate"><span class="pre">request.GET</span></code>. When multiple arguments are provided, key-value
pairs from later arguments take precedence over earlier ones.</p>
<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>
<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>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>Similarly, if all positional arguments are empty and keyword arguments do not
contribute any new params, the output will also be <code class="docutils literal notranslate"><span class="pre">?</span></code>.</p>
<div class="versionchanged">
<span class="title">Changed in Django 6.0:</span> <p>Support for multiple positional mapping arguments was added.</p>
</div>
</section>
<section id="s-dynamic-usage">
<span id="dynamic-usage"></span><h4>動的な使用方法<a class="headerlink" href="#dynamic-usage" title="Link to this heading">¶</a></h4>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>値を変数に格納することもできます。例えば、同じページへのリンクを複数必要とする場合は、次のように定義します。</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
</section>
</section>
<section id="s-regroup">
<span id="s-std-templatetag-regroup"></span><span id="regroup"></span><span id="std-templatetag-regroup"></span><h3><code class="docutils literal notranslate"><span class="pre">regroup</span></code><a class="headerlink" href="#regroup" title="Link to this heading">¶</a></h3>
<p>オブジェクトのリストから、同じ属性値を持つオブジェクトのグループを作ります。</p>
<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>, and <code class="docutils literal notranslate"><span class="pre">&quot;country&quot;</span></code> をキーとして含むディクショナリによって表された都市のリストとします:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">cities</span> <span class="o">=</span> <span class="p">[</span>
    <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>
    <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>
    <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>
    <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>
    <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>
<span class="p">]</span>
</pre></div>
</div>
<p>...そして、あなたは次のように、国別に並べた一覧を表示させたいものとしましょう:</p>
<ul class="simple">
<li><p>India</p>
<ul>
<li><p>Mumbai: 19,000,000</p></li>
<li><p>Calcutta: 15,000,000</p></li>
</ul>
</li>
<li><p>USA</p>
<ul>
<li><p>New York: 20,000,000</p></li>
<li><p>Chicago: 7,000,000</p></li>
</ul>
</li>
<li><p>Japan</p>
<ul>
<li><p>Tokyo: 33,000,000</p></li>
</ul>
</li>
</ul>
<p>ここで <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">regroup</span> <span class="pre">%}</span></code> タグを使って都市のリストを国別にグループ化できます。以下は、そのためのテンプレートコード例です:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>

<span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
<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>
    <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>
    <span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
        <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>
          <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>
        <span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
    <span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
    <span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
<span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>この例を見てみましょう。<code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">regroup</span> <span class="pre">%}</span></code> タグは 3 つの引数を取ります。グループ分けを行うリスト、グループ分けに使う属性の名前、そして結果とするリストの名前の 3 つです。ここでは <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">country_list</span></code> と呼んでいます。</p>
<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
<strong>group objects</strong>. Group objects are instances of
<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>
<ul class="simple">
<li><p><code class="docutils literal notranslate"><span class="pre">grouper</span></code> -- グループ分けに使われた要素 ( ここでは &quot;India&quot; &quot;Japan&quot; といった文字列 )</p></li>
<li><p><code class="docutils literal notranslate"><span class="pre">list</span></code> -- このグループ内のすべての要素からなるリスト ( たとえば country='India' であるすべての都市のリスト)</p></li>
</ul>
<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,
you can also write the previous example as:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>

<span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
<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>
    <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>
    <span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
        <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>
          <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>
        <span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
    <span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
    <span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
<span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>{% regroup %} は入力をソートしないことに注意してください！ 上の例では、リスト <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> の順に並べられて <em>いなかった</em> 場合、regroup はそのまま何も考えずに 1 つの国に対してグループを 1 つ以上作ってしまうかもしれません。たとえばリスト <code class="docutils literal notranslate"><span class="pre">cities</span></code> が、次のように (リスト内で国ごとにまとまっていない状態に) なっていたとしましょう。</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="n">cities</span> <span class="o">=</span> <span class="p">[</span>
    <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>
    <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>
    <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>
    <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>
    <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>
<span class="p">]</span>
</pre></div>
</div>
<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>
<ul class="simple">
<li><p>India</p>
<ul>
<li><p>Mumbai: 19,000,000</p></li>
</ul>
</li>
<li><p>USA</p>
<ul>
<li><p>New York: 20,000,000</p></li>
</ul>
</li>
<li><p>India</p>
<ul>
<li><p>Calcutta: 15,000,000</p></li>
</ul>
</li>
<li><p>USA</p>
<ul>
<li><p>Chicago: 7,000,000</p></li>
</ul>
</li>
<li><p>Japan</p>
<ul>
<li><p>Tokyo: 33,000,000</p></li>
</ul>
</li>
</ul>
<p>このような落し穴を解決するには、ビューコード内であらかじめデータを表示したい順番に並べておくのが最も簡単でしょう。</p>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<section id="s-grouping-on-other-properties">
<span id="grouping-on-other-properties"></span><h4>その他の属性によるグループ化<a class="headerlink" href="#grouping-on-other-properties" title="Link to this heading">¶</a></h4>
<p>テンプレートの有効な参照は、いずれも regroup タグでグループ化するための属性として扱うことができます。これにはメソッド、属性、辞書のキー、リスト項目が含まれます。例えば &quot;country&quot; というフィールドが外部キーで、その参照するクラスが &quot;description&quot; 属性を持つ場合、次のように使うことができます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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="../models/instances.html#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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
</section>
<section id="s-resetcycle">
<span id="s-std-templatetag-resetcycle"></span><span id="resetcycle"></span><span id="std-templatetag-resetcycle"></span><h3><code class="docutils literal notranslate"><span class="pre">resetcycle</span></code><a class="headerlink" href="#resetcycle" title="Link to this heading">¶</a></h3>
<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>
<p>使用例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
    <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>
        <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>
    <span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
    <span class="cp">{%</span> <span class="k">resetcycle</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>上記の例は以下のようなHTMLを返します：</p>
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><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>
<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>
<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>
<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>

<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>
<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>
<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>
</pre></div>
</div>
<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> タグがなければ、2番目のブロックは <code class="docutils literal notranslate"><span class="pre">class=&quot;even&quot;</span></code> から始まります。</p>
<p>名前付きのサイクルタグをリセットすることもできます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
        <span class="cp">{{</span> <span class="nv">item.data</span> <span class="cp">}}</span>
    <span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
    <span class="cp">{%</span> <span class="k">ifchanged</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><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>
        <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>
    <span class="cp">{%</span> <span class="k">endifchanged</span> <span class="cp">%}</span>
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>この例では、&quot;odd&quot; と &quot;even&quot; の交互の行と、5行目ごとの &quot;major&quot; な行の両方があります。カテゴリーが変わると、5列のサイクルだけがリセットされます。</p>
</section>
<section id="s-spaceless">
<span id="s-std-templatetag-spaceless"></span><span id="spaceless"></span><span id="std-templatetag-spaceless"></span><h3><code class="docutils literal notranslate"><span class="pre">spaceless</span></code><a class="headerlink" href="#spaceless" title="Link to this heading">¶</a></h3>
<p>ブロック内の HTML タグ間にある空白文字を除去します。タブ文字や改行も含みます。</p>
<p>使用例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">spaceless</span> <span class="cp">%}</span>
    <span class="p">&lt;</span><span class="nt">p</span><span class="p">&gt;</span>
        <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>
    <span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endspaceless</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>上記の例は以下のようなHTMLを返します：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>取り除かれるのは、タグとタグの間の空白だけです。タグとテキストの間のスペースは取り除かれません。この例では、<code class="docutils literal notranslate"><span class="pre">Hello</span></code> の周りのスペースは取り除かれません：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">spaceless</span> <span class="cp">%}</span>
    <span class="p">&lt;</span><span class="nt">strong</span><span class="p">&gt;</span>
        Hello
    <span class="p">&lt;/</span><span class="nt">strong</span><span class="p">&gt;</span>
<span class="cp">{%</span> <span class="k">endspaceless</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-templatetag">
<span id="s-std-templatetag-templatetag"></span><span id="templatetag"></span><span id="std-templatetag-templatetag"></span><h3><code class="docutils literal notranslate"><span class="pre">templatetag</span></code><a class="headerlink" href="#templatetag" title="Link to this heading">¶</a></h3>
<p>テンプレートタグの構文で使われる文字を、通常の文字として出力します。</p>
<p>テンプレートシステムには個々の文字を「エスケープ」する概念はありません。しかし、<code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">templatetag</span> <span class="pre">%}</span></code> タグを使えば、テンプレートタグの文字の組み合わせを表示できます。</p>
<p>どの要素を出力するかは、引数で指定します:</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p>引数</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">openblock</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">{%</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">closeblock</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">%}</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">openvariable</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">{{</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">closevariable</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">}}</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">openbrace</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">{</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">closebrace</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">}</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">opencomment</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">{#</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">closecomment</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">#}</span></code></p></td>
</tr>
</tbody>
</table>
<p>使用例：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>The <span class="cp">{%</span> <span class="k">templatetag</span> <span class="nv">openblock</span> <span class="cp">%}</span> characters open a block.
</pre></div>
</div>
<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>
</section>
<section id="s-url">
<span id="s-std-templatetag-url"></span><span id="url"></span><span id="std-templatetag-url"></span><h3><code class="docutils literal notranslate"><span class="pre">url</span></code><a class="headerlink" href="#url" title="Link to this heading">¶</a></h3>
<p>ビューとオプションの引数を指定して、これとマッチする絶対パスへの参照 ( ドメイン部分を除いた URL ) を返します。結果のパスに特殊文字が含まれる場合、 <a class="reference internal" href="../utils.html#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>
<p>This is a way to output links without violating the DRY principle by having to
hardcode URLs in your templates:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>第 1 引数は <a class="reference internal" href="../../topics/http/urls.html#naming-url-patterns"><span class="std std-ref">URL パターン名</span></a> です。これは引用符で括ったリテラル、またはその他のコンテキスト変数です。続く引数はオプションで、空白で区切って指定します。引数はそれぞれ URL の引数として使われます。上の例では固定引数によって引数を指定していますが、代わりにキーワード引数で指定することもできます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>1 つの呼び出しのなかで、固定引数とキーワード引数を混ぜることはできません。また URLconf で必要とされる引数はすべて指定しなければなりません。</p>
<p>たとえば <code class="docutils literal notranslate"><span class="pre">app_views.client</span></code> という名前のビューがあって、クライアントの ID を引数に取るとしましょう ( <code class="docutils literal notranslate"><span class="pre">client()</span></code> は、 views ファイル <code class="docutils literal notranslate"><span class="pre">app_views.py</span></code> の中で定義されているメソッドです ) 。 URLconf は以下のようなものになるでしょう:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>このアプリケーションの URLconf が、プロジェクトの URLconf の中に次のような形で include されていたとします:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>...このとき、テンプレート内でこのビューへのリンクを作るには、次のようにします:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>テンプレートタグの出力は、文字列 <code class="docutils literal notranslate"><span class="pre">/clients/client/123/</span></code> となります。</p>
<p>逆引きしようとしている URL が存在しなかった場合、 <a class="reference internal" href="../exceptions.html#django.urls.NoReverseMatch" title="django.urls.NoReverseMatch"><code class="xref py py-exc docutils literal notranslate"><span class="pre">NoReverseMatch</span></code></a> 例外が発生して、あなたのサイトにはエラーページが表示されることに注意しましょう。</p>
<p>ページを表示させずに URL を取り出したい場合、少し違った呼び出し方が使えます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>

<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>
</pre></div>
</div>
<p>`` ～ as 変数`` の構文で作られた変数は、 <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">url</span> <span class="pre">%}</span></code> タグのある <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">block</span> <span class="pre">%}</span></code> 内がスコープとなります。</p>
<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> 構文はビューが見つからなくてもエラーを起こしません。実用としては、オプションのビューへリンクする場合に使えます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
<span class="cp">{%</span> <span class="k">if</span> <span class="nv">the_url</span> <span class="cp">%}</span>
  <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>
<span class="cp">{%</span> <span class="k">endif</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>名前空間化された URL を取り出したい場合は、完全修飾名で指定してください：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">url</span> <span class="s1">&#39;myapp:view-name&#39;</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>これは通常の <a class="reference internal" href="../../topics/http/urls.html#topics-http-reversing-url-namespaces"><span class="std std-ref">名前付き URL の解決順序</span></a> に従います。ここには現在のアプリケーションに関してコンテキストから得られる様々なヒントについて書かれています。</p>
<div class="admonition warning">
<p class="admonition-title">警告</p>
<p>URL パターン <code class="docutils literal notranslate"><span class="pre">name</span></code> は忘れずに引用符で囲んで下さい。そうしないと、値はコンテキスト変数であると解釈されます！</p>
</div>
</section>
<section id="s-verbatim">
<span id="s-std-templatetag-verbatim"></span><span id="verbatim"></span><span id="std-templatetag-verbatim"></span><h3><code class="docutils literal notranslate"><span class="pre">verbatim</span></code><a class="headerlink" href="#verbatim" title="Link to this heading">¶</a></h3>
<p>このブロックタグ内では、テンプレートエンジンによる解釈を行いません。</p>
<p>これは JavaScript テンプレート の文法が Django と衝突してしまう時によく使われます。例えば:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">verbatim</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endverbatim</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>verbatim ブロックの中で &quot;<code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">endverbatim</span> <span class="pre">%}</span></code>&quot; を使うには、開始・終了タグが特定できるように名前をつけます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">verbatim</span> <span class="nv">myblock</span> <span class="cp">%}</span>
    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.
<span class="cp">{%</span> <span class="k">endverbatim</span> <span class="nv">myblock</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-widthratio">
<span id="s-std-templatetag-widthratio"></span><span id="widthratio"></span><span id="std-templatetag-widthratio"></span><h3><code class="docutils literal notranslate"><span class="pre">widthratio</span></code><a class="headerlink" href="#widthratio" title="Link to this heading">¶</a></h3>
<p>バーチャートなどを生成する場合のために、指定した値と最大値との比を計算し、 定数に掛けた値を返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
     <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>
</pre></div>
</div>
<p>ここで this_value = 175 、 max_value = 200 であるとき、画像の幅は 88 ピクセルになります (175 / 200 = .875、 .875 * 100 = 87.5 から四捨五入して 88 )。</p>
<p><code class="docutils literal notranslate"><span class="pre">widthratio</span></code> の結果を変数に入れてキャプチャーしたいことがあります。例えば <a class="reference internal" href="../../topics/i18n/translation.html#std-templatetag-blocktranslate"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">blocktranslate</span></code></a> で使う場合、次のようにできます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></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="k">as</span> <span class="nv">width</span> <span class="cp">%}</span>
<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>
</pre></div>
</div>
</section>
<section id="s-with">
<span id="s-std-templatetag-with"></span><span id="with"></span><span id="std-templatetag-with"></span><h3><code class="docutils literal notranslate"><span class="pre">with</span></code><a class="headerlink" href="#with" title="Link to this heading">¶</a></h3>
<p>複雑な表現の変数の値をキャッシュし、簡単な名前で参照できるようにします。呼出しコストの高いメソッド (たとえばデータベースを操作するようなメソッド) に何度もアクセスする際に便利です。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    <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>
<span class="cp">{%</span> <span class="k">endwith</span> <span class="cp">%}</span>
</pre></div>
</div>
<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>
<p>コンテキスト変数は、複数割り当てることができます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    ...
<span class="cp">{%</span> <span class="k">endwith</span> <span class="cp">%}</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<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>
</div>
</section>
</section>
<section id="s-built-in-filter-reference">
<span id="s-ref-templates-builtins-filters"></span><span id="built-in-filter-reference"></span><span id="ref-templates-builtins-filters"></span><h2>組み込みフィルタリファレンス<a class="headerlink" href="#built-in-filter-reference" title="Link to this heading">¶</a></h2>
<section id="s-add">
<span id="s-std-templatefilter-add"></span><span id="add"></span><span id="std-templatefilter-add"></span><h3><code class="docutils literal notranslate"><span class="pre">add</span></code><a class="headerlink" href="#add" title="Link to this heading">¶</a></h3>
<p>入力値に対して引数の値を加算します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>value が 4 なら、出力は 6 になるでしょう。</p>
<p>このフィルタは、まず両方の値を強制的に整数とみなして加算しようとします。失敗した場合は、とにかく値を足し合わせることを試みます。これはいくつかのデータ型 (文字列、リストなど) では動作しますが、それ以外では失敗します。失敗した場合、結果は空の文字列になります。</p>
<p>例として、次のようなフィルタがあるとしましょう:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<div class="admonition warning">
<p class="admonition-title">警告</p>
<p>整数に変換可能な文字列は、整数として「<strong>加算</strong>」されます。上の例のように「<strong>結合</strong>」されません。</p>
</div>
</section>
<section id="s-addslashes">
<span id="s-std-templatefilter-addslashes"></span><span id="addslashes"></span><span id="std-templatefilter-addslashes"></span><h3><code class="docutils literal notranslate"><span class="pre">addslashes</span></code><a class="headerlink" href="#addslashes" title="Link to this heading">¶</a></h3>
<p>引用符の前にスラッシュを追加します。CSV などの文字列をエスケープする際に便利です。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">addslashes</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-capfirst">
<span id="s-std-templatefilter-capfirst"></span><span id="capfirst"></span><span id="std-templatefilter-capfirst"></span><h3><code class="docutils literal notranslate"><span class="pre">capfirst</span></code><a class="headerlink" href="#capfirst" title="Link to this heading">¶</a></h3>
<p>入力値の先頭の文字を大文字に変換します。最初の文字がアルファベットでなければ効果はありません。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">capfirst</span> <span class="cp">}}</span>
</pre></div>
</div>
<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&quot;</span></code> となります。</p>
</section>
<section id="s-center">
<span id="s-std-templatefilter-center"></span><span id="center"></span><span id="std-templatefilter-center"></span><h3><code class="docutils literal notranslate"><span class="pre">center</span></code><a class="headerlink" href="#center" title="Link to this heading">¶</a></h3>
<p>入力値を引数で指定された幅のフィールド内に中央寄せします。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>&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;
</pre></div>
</div>
<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>
</section>
<section id="s-cut">
<span id="s-std-templatefilter-cut"></span><span id="cut"></span><span id="std-templatefilter-cut"></span><h3><code class="docutils literal notranslate"><span class="pre">cut</span></code><a class="headerlink" href="#cut" title="Link to this heading">¶</a></h3>
<p>入力値の中から、引数に指定した値を全て取り除きます。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-date">
<span id="s-std-templatefilter-date"></span><span id="date"></span><span id="std-templatefilter-date"></span><h3><code class="docutils literal notranslate"><span class="pre">date</span></code><a class="headerlink" href="#date" title="Link to this heading">¶</a></h3>
<p>引数に指定した書式で日付をフォーマットします。</p>
<p>PHP の <a class="reference external" href="https://www.php.net/manual/en/function.date.php">date()</a> 関数と似た書式を使いますが、若干の違いがあります。</p>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<p>これらのフォーマット文字は、テンプレート以外では使えません。デザイナーが PHP のテンプレートから容易に変換できるように互換性を持たせています。</p>
</div>
<p id="date-and-time-formatting-specifiers">利用可能なフォーマット文字:</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p>フォーマット文字</p></th>
<th class="head"><p>説明</p></th>
<th class="head"><p>出力の例</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p>日</p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">d</span></code></p></td>
<td><p>日。 2 桁のゼロ詰め表示です。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">j</span></code></p></td>
<td><p>日。ゼロ埋め表示なし。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">D</span></code></p></td>
<td><p>曜日。 アルファベット 3 文字のテキスト形式です。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'Fri'</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">l</span></code></p></td>
<td><p>曜日。長いテキスト形式です。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'Friday'</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">S</span></code></p></td>
<td><p>日を表わす数字につける、英語特有の接尾辞。アルファベット 2 文字です。</p></td>
<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> or <code class="docutils literal notranslate"><span class="pre">'th'</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">w</span></code></p></td>
<td><p>曜日（数字 1 桁）。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">z</span></code></p></td>
<td><p>日（１年間における）</p></td>
<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>
</tr>
<tr class="row-even"><td><p><strong>週</strong></p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">W</span></code></p></td>
<td><p>ISO-8601 による年間の週番号。 週は月曜日から始まります。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><strong>月</strong></p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">m</span></code></p></td>
<td><p>月。数字 2 桁で、ゼロ埋め表示します。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">n</span></code></p></td>
<td><p>月。ゼロ埋め表示しません。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">M</span></code></p></td>
<td><p>月。アルファベット 3 文字のテキスト形式です。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'Jan'</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">b</span></code></p></td>
<td><p>月。アルファベット（小文字） 3 文字のテキスト形式です。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'jan'</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">E</span></code></p></td>
<td><p>月。ロケールが定義する代替表現が使われ、通常は長いテキスト形式になります。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'listopada'</span></code> ( ロケールがポーランド語の場合。ポーランド語 <code class="docutils literal notranslate"><span class="pre">'Listopad（</span> <span class="pre">11</span> <span class="pre">月）'</span></code> の、時制における変化形 )</p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">F</span></code></p></td>
<td><p>月。長いテキスト形式で表したものです。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'January'</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">N</span></code></p></td>
<td><p>AP スタイルブックによる月の省略表記。独自の拡張です。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">t</span></code></p></td>
<td><p>その月の日数。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><strong>年</strong></p></td>
<td></td>
<td></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">y</span></code></p></td>
<td><p>年。数字 2 桁で、先頭をゼロ埋めします。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Y</span></code></p></td>
<td><p>年。数字 4 桁で、先頭をゼロ埋めします。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">L</span></code></p></td>
<td><p>うるう年かどうかを表すブール値です。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">o</span></code></p></td>
<td><p>ISO-8601 の週番号付き記法による年。うるう週を用いた ISO-8601 週番号 (W) に対応します。一般的な年のフォーマットは Y を参照してください。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'1999'</span></code></p></td>
</tr>
<tr class="row-even"><td><p><strong>時刻</strong></p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">g</span></code></p></td>
<td><p>時（ 12 時間表記）。ゼロ埋め表示なし。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">G</span></code></p></td>
<td><p>時（ 24 時間表記）。ゼロ埋め表示なし。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">h</span></code></p></td>
<td><p>時（ 12 時間表記）。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">H</span></code></p></td>
<td><p>時（ 24 時間表記）。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">i</span></code></p></td>
<td><p>分。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">s</span></code></p></td>
<td><p>秒。数字 2 桁で、ゼロ埋め表示です。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">u</span></code></p></td>
<td><p>マイクロ秒。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">a</span></code></p></td>
<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 における出力と少し異なり、 AP スタイルブックに従ってピリオドをつけます )</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'a.m.'</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">A</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">'AM'</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">f</span></code></p></td>
<td><p>時と分（12 時間表記）。ただしゼロ分であるときは時間だけを表示します。これは独自の拡張です。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">P</span></code></p></td>
<td><p>時刻。12 時間表記による 時間:分 に続けて ‘a.m.’ または ’p.m.’ を表示します。ゼロ分である場合には分の表示が省略され、必要に応じて ‘midnight’ または ‘noon’ の表示になります。 独自の拡張です。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><strong>タイムゾーン</strong></p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">e</span></code></p></td>
<td><p>タイムゾーン名。どのフォーマットでも使えますが、 datetime によっては空の文字列を返す場合もあります。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">I</span></code></p></td>
<td><p>夏時間（DST）が有効か、そうでないかを表します。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">O</span></code></p></td>
<td><p>グリニッジ標準時からの時差。</p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">'+0200'</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">T</span></code></p></td>
<td><p>計算機のタイムゾーン設定。</p></td>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">Z</span></code></p></td>
<td><p>タイムゾーンオフセットを秒であらわしたもの。UTC よりも西側のタイムゾーン値は全て負の値になり、東側の値は常に正になります。</p></td>
<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>
</tr>
<tr class="row-even"><td><p><strong>日付/時刻</strong></p></td>
<td></td>
<td></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">c</span></code></p></td>
<td><p>ISO 8601 フォーマット。 ( 注： これは他の &quot;Z&quot;、&quot;O&quot;、&quot;r&quot; といったフォーマット文字とは異なり、 入力値がタイムゾーン情報を含まない（&quot;naive&quot;な） datetime であっても、タイムゾーンによる時差を加算しません ( <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>
<td><p><code class="docutils literal notranslate"><span class="pre">2008-01-02T10:30:00.000123+02:00</span></code> 、または datetime が naive である場合  <code class="docutils literal notranslate"><span class="pre">2008-01-02T10:30:00.000123</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">r</span></code></p></td>
<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>
<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>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">U</span></code></p></td>
<td><p>Unix エポック時 ( UTC 協定世界時 1970年1月1日 00:00:00 ) からの秒数。</p></td>
<td></td>
</tr>
</tbody>
</table>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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
<code class="docutils literal notranslate"><span class="pre">datetime.datetime.now()</span></code>), the output will be the string
<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>
<p>フォーマットには、プリセット（ <a class="reference internal" href="../settings.html#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="../settings.html#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="../settings.html#std-setting-SHORT_DATE_FORMAT"><code class="xref std std-setting docutils literal notranslate"><span class="pre">SHORT_DATE_FORMAT</span></code></a> or <a class="reference internal" href="../settings.html#std-setting-SHORT_DATETIME_FORMAT"><code class="xref std std-setting docutils literal notranslate"><span class="pre">SHORT_DATETIME_FORMAT</span></code></a> ）のうちの１つ、または上記の表で示したフォーマット指定文字を使ったカスタムフォーマットが使えます。プリセットのフォーマットは、現在のロケールに応じて表示が変化することに注意してください。</p>
<p>たとえば <a class="reference internal" href="../settings.html#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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>上記の出力は、文字列 <code class="docutils literal notranslate"><span class="pre">&quot;09/01/2008&quot;</span></code> となります ( <code class="docutils literal notranslate"><span class="pre">es</span></code> ロケールの <code class="docutils literal notranslate"><span class="pre">&quot;SHORT_DATE_FORMAT&quot;</span></code> フォーマットは、 Django の初期設定では <code class="docutils literal notranslate"><span class="pre">&quot;d/m/Y&quot;</span></code> です)。</p>
<p>フォーマット文字列を指定せずに使用する場合、 <code class="docutils literal notranslate"><span class="pre">DATE_FORMAT</span></code> フォーマット指定子が使用されます。先ほどの例と同じ設定だとすると：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">date</span> <span class="cp">}}</span>
</pre></div>
</div>
<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">es</span></code> ロケールの <code class="docutils literal notranslate"><span class="pre">DATE_FORMAT</span></code> フォーマット指定子は <code class="docutils literal notranslate"><span class="pre">r'j</span> <span class="pre">\d\e</span> <span class="pre">F</span> <span class="pre">\d\e</span> <span class="pre">Y'</span></code>)。 &quot;d &quot;と &quot;e &quot;はどちらもバックスラッシュでエスケープされていますが、それ以外はそれぞれ曜日とタイムゾーン名を表示するフォーマット文字列だからです。</p>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
</section>
<section id="s-default">
<span id="s-std-templatefilter-default"></span><span id="default"></span><span id="std-templatefilter-default"></span><h3><code class="docutils literal notranslate"><span class="pre">default</span></code><a class="headerlink" href="#default" title="Link to this heading">¶</a></h3>
<p>入力の評価値が <code class="docutils literal notranslate"><span class="pre">False</span></code> の場合、引数に指定したデフォルト値を使います。そうでなければ、入力値を使います。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-default-if-none">
<span id="s-std-templatefilter-default_if_none"></span><span id="default-if-none"></span><span id="std-templatefilter-default_if_none"></span><h3><code class="docutils literal notranslate"><span class="pre">default_if_none</span></code><a class="headerlink" href="#default-if-none" title="Link to this heading">¶</a></h3>
<p>入力値が <code class="docutils literal notranslate"><span class="pre">None</span></code> であるとき ( <code class="docutils literal notranslate"><span class="pre">None</span></code> であるときのみ ) 、引数に指定したデフォルト値を使いま す。そうでなければ、入力値を使います。</p>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-dictsort">
<span id="s-std-templatefilter-dictsort"></span><span id="dictsort"></span><span id="std-templatefilter-dictsort"></span><h3><code class="docutils literal notranslate"><span class="pre">dictsort</span></code><a class="headerlink" href="#dictsort" title="Link to this heading">¶</a></h3>
<p>辞書のリストを入力として、引数に指定したキーでリストをソートして返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">value</span></code> が以下の内容であるとします:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">[</span>
    <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>
    <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>
    <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>
<span class="p">]</span>
</pre></div>
</div>
<p>このとき出力は以下のようになるでしょう:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">[</span>
    <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>
    <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>
    <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>
<span class="p">]</span>
</pre></div>
</div>
<p>より複雑なリストに対しても、以下のように処理できます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
    * <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>)
<span class="cp">{%</span> <span class="k">endfor</span> <span class="cp">%}</span>
</pre></div>
</div>
<p>ここで <code class="docutils literal notranslate"><span class="pre">books</span></code> が以下の内容だとします:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">[</span>
    <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>
    <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>
    <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>
<span class="p">]</span>
</pre></div>
</div>
<p>このとき出力は以下のようになるでしょう:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>* Alice (Lewis)
* 1984 (George)
* Timequake (Kurt)
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">dictsort</span></code> はリスト（または <code class="docutils literal notranslate"><span class="pre">__getitem__()</span></code> を実装した他のオブジェクト）のリストを指定したインデックスの要素でソートすることもできます。たとえば、：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">value</span></code> が以下の内容であるとします:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">[</span>
    <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>
    <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>
    <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>
<span class="p">]</span>
</pre></div>
</div>
<p>このとき出力は以下のようになるでしょう:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="p">[</span>
    <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>
    <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>
    <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>
<span class="p">]</span>
</pre></div>
</div>
<p>インデックスは文字列ではなく整数で渡す必要があります。以下のコードの出力は空です：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>指定したインデックスの要素によるソートは辞書ではサポートされていません。</p>
</section>
<section id="s-dictsortreversed">
<span id="s-std-templatefilter-dictsortreversed"></span><span id="dictsortreversed"></span><span id="std-templatefilter-dictsortreversed"></span><h3><code class="docutils literal notranslate"><span class="pre">dictsortreversed</span></code><a class="headerlink" href="#dictsortreversed" title="Link to this heading">¶</a></h3>
<p>辞書のリストを入力に取り、引数に指定したキーでリストを逆順にソートして返します。これは上のフィルタと全く同じ処理をしますが、返す値は逆順です。</p>
</section>
<section id="s-divisibleby">
<span id="s-std-templatefilter-divisibleby"></span><span id="divisibleby"></span><span id="std-templatefilter-divisibleby"></span><h3><code class="docutils literal notranslate"><span class="pre">divisibleby</span></code><a class="headerlink" href="#divisibleby" title="Link to this heading">¶</a></h3>
<p>値が引数の値で割り切れる場合に <code class="docutils literal notranslate"><span class="pre">True</span></code> を返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-escape">
<span id="s-std-templatefilter-escape"></span><span id="escape"></span><span id="std-templatefilter-escape"></span><h3><code class="docutils literal notranslate"><span class="pre">escape</span></code><a class="headerlink" href="#escape" title="Link to this heading">¶</a></h3>
<p>入力文字中にある HTML の特殊文字をエスケープします。具体的には、以下のような置換を行います:</p>
<ul class="simple">
<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>
<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>
<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>
<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>
<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>
</ul>
<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>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">autoescape</span> <span class="nv">off</span> <span class="cp">%}</span>
    <span class="cp">{{</span> <span class="nv">title</span><span class="o">|</span><span class="nf">escape</span> <span class="cp">}}</span>
<span class="cp">{%</span> <span class="k">endautoescape</span> <span class="cp">%}</span>
</pre></div>
</div>
<div class="admonition-chaining-escape-with-other-filters admonition">
<p class="admonition-title"><code class="docutils literal notranslate"><span class="pre">escape</span></code> を他のフィルタと連結する場合</p>
<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>
<p>このような場合、<code class="docutils literal notranslate"><span class="pre">escape</span></code> を連結させても、すでに安全であるとマークされている文字列を再エスケープすることはできません。</p>
<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>
</div>
</section>
<section id="s-escapejs">
<span id="s-std-templatefilter-escapejs"></span><span id="escapejs"></span><span id="std-templatefilter-escapejs"></span><h3><code class="docutils literal notranslate"><span class="pre">escapejs</span></code><a class="headerlink" href="#escapejs" title="Link to this heading">¶</a></h3>
<p>JavaScript の文字列リテラル全体として、以下のように一重引用符または二重引用符で囲んで使用する文字をエスケープします。このフィルタは文字列を <em>&quot;JavaScript テンプレートリテラル &quot;</em> (JavaScript のバックティック構文) では安全に使えません。これ以外の使い方はサポートされていません。通常は、データは埋め込み 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> フィルタを使って渡すことを推奨します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">script</span><span class="p">&gt;</span>
<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>
</pre></div>
</div>
</section>
<section id="s-escapeseq">
<span id="s-std-templatefilter-escapeseq"></span><span id="escapeseq"></span><span id="std-templatefilter-escapeseq"></span><h3><code class="docutils literal notranslate"><span class="pre">escapeseq</span></code><a class="headerlink" href="#escapeseq" title="Link to this heading">¶</a></h3>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">autoescape</span> <span class="nv">off</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endautoescape</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-filesizeformat">
<span id="s-std-templatefilter-filesizeformat"></span><span id="filesizeformat"></span><span id="std-templatefilter-filesizeformat"></span><h3><code class="docutils literal notranslate"><span class="pre">filesizeformat</span></code><a class="headerlink" href="#filesizeformat" title="Link to this heading">¶</a></h3>
<p>入力値を、人間が読みやすいファイルサイズ表現 ('13 KB', '4.1 MB', '102 bytes' など) に変換します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">filesizeformat</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
<div class="admonition-file-sizes-and-si-units admonition">
<p class="admonition-title">ファイルサイズと国際単位系（SI）</p>
<p><code class="docutils literal notranslate"><span class="pre">filesizeformat</span></code> は、厳密には国際単位系（SI）に準拠していません。国際単位系ではバイトサイズを 1024 の累乗で計算する場合 (上の例がそうですが) 、  KiB、MiB、GiB などの単位を使うよう推奨しています。しかし Django ではより一般的な表記に対応して、従来の単位名（ KB、 MB、GB など）を使用しています。</p>
</div>
</section>
<section id="s-first">
<span id="s-std-templatefilter-first"></span><span id="first"></span><span id="std-templatefilter-first"></span><h3><code class="docutils literal notranslate"><span class="pre">first</span></code><a class="headerlink" href="#first" title="Link to this heading">¶</a></h3>
<p>リスト中の最初の要素を返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">first</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-floatformat">
<span id="s-std-templatefilter-floatformat"></span><span id="floatformat"></span><span id="std-templatefilter-floatformat"></span><h3><code class="docutils literal notranslate"><span class="pre">floatformat</span></code><a class="headerlink" href="#floatformat" title="Link to this heading">¶</a></h3>
<p>引数なしで使った場合、浮動小数点数を小数点以下１桁に丸めます。ただし小数部分がない時には整数部分だけを表示します。例を示します:</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">value</span></code></p></th>
<th class="head"><p>テンプレート</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat</span> <span class="pre">}}</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">34.2</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat</span> <span class="pre">}}</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">34</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.26000</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat</span> <span class="pre">}}</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">34.3</span></code></p></td>
</tr>
</tbody>
</table>
<p>引数に１以上の整数を指定した場合、 <code class="docutils literal notranslate"><span class="pre">floatformat</span></code> は小数部分を指定された桁数で丸めます。以下に例を示します:</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">value</span></code></p></th>
<th class="head"><p>テンプレート</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34.232</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34.000</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.26000</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34.260</span></code></p></td>
</tr>
</tbody>
</table>
<p>特に便利な使い方として、引数に 0 (ゼロ) を指定した場合、入力値を一番近い整数に丸めます。</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">value</span></code></p></th>
<th class="head"><p>テンプレート</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">39.56000</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">40</span></code></p></td>
</tr>
</tbody>
</table>
<p>引数に負の数を指定した場合、小数部分を指定された桁数（指定された数の絶対値）で丸めます。ただし小数部分がない時には整数部分だけを表示します。例を示します:</p>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">value</span></code></p></th>
<th class="head"><p>テンプレート</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34.232</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.26000</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34.260</span></code></p></td>
</tr>
</tbody>
</table>
<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="../settings.html#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>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">value</span></code></p></th>
<th class="head"><p>テンプレート</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34232.34</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34,232.34</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">34232.06</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34,232.1</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34232.00</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34,232</span></code></p></td>
</tr>
</tbody>
</table>
<p><a class="reference internal" href="../../topics/i18n/formatting.html#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>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p><code class="docutils literal notranslate"><span class="pre">value</span></code></p></th>
<th class="head"><p>テンプレート</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34,232</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></p></td>
<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>
<td><p><code class="docutils literal notranslate"><span class="pre">34.232</span></code></p></td>
</tr>
</tbody>
</table>
<p><code class="docutils literal notranslate"><span class="pre">floatformat</span></code> を引数なしで使用した場合の動作は、引数に <code class="docutils literal notranslate"><span class="pre">-1</span></code> を指定した場合と同じです。</p>
</section>
<section id="s-force-escape">
<span id="s-std-templatefilter-force_escape"></span><span id="force-escape"></span><span id="std-templatefilter-force_escape"></span><h3><code class="docutils literal notranslate"><span class="pre">force_escape</span></code><a class="headerlink" href="#force-escape" title="Link to this heading">¶</a></h3>
<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>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">autoescape</span> <span class="nv">off</span> <span class="cp">%}</span>
    <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>
<span class="cp">{%</span> <span class="k">endautoescape</span> <span class="cp">%}</span>
</pre></div>
</div>
</section>
<section id="s-get-digit">
<span id="s-std-templatefilter-get_digit"></span><span id="get-digit"></span><span id="std-templatefilter-get_digit"></span><h3><code class="docutils literal notranslate"><span class="pre">get_digit</span></code><a class="headerlink" href="#get-digit" title="Link to this heading">¶</a></h3>
<p>入力値が整数であるとき、引数で指定された桁にある数字を返します。たとえば引数が 1 のとき右端の桁、 2 のとき右から 2 桁目が指定されます。入力が整数でない場合には、入力値をそのまま返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-iriencode">
<span id="s-std-templatefilter-iriencode"></span><span id="iriencode"></span><span id="std-templatefilter-iriencode"></span><h3><code class="docutils literal notranslate"><span class="pre">iriencode</span></code><a class="headerlink" href="#iriencode" title="Link to this heading">¶</a></h3>
<p>IRI (国際化リソース識別子 Internationalized Resource Identifier) を URL に適した文字列に変換します。これは非 ASCII 文字列を URL に埋め込む場合に必要なフィルタです。</p>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">iriencode</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-join">
<span id="s-std-templatefilter-join"></span><span id="join"></span><span id="std-templatefilter-join"></span><h3><code class="docutils literal notranslate"><span class="pre">join</span></code><a class="headerlink" href="#join" title="Link to this heading">¶</a></h3>
<p>Python の <code class="docutils literal notranslate"><span class="pre">str.join(list)</span></code> と同じく、リストを文字列でつなぎます。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-json-script">
<span id="s-std-templatefilter-json_script"></span><span id="json-script"></span><span id="std-templatefilter-json_script"></span><h3><code class="docutils literal notranslate"><span class="pre">json_script</span></code><a class="headerlink" href="#json-script" title="Link to this heading">¶</a></h3>
<p>Python オブジェクトを JSON として安全に出力し、 <code class="docutils literal notranslate"><span class="pre">&lt;script&gt;</span></code> タグでラップします。</p>
<p><strong>引数:</strong> オプションで、HTMLの <code class="docutils literal notranslate"><span class="pre">&lt;script&gt;</span></code> タグの &quot;id&quot; を指定します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p><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'}</span></code> の場合、次のように出力されます：</p>
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>結果のデータは JavaScript で次のようにアクセスできます：</p>
<div class="highlight-javascript notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>XSS攻撃は &quot;&lt;&quot;, &quot;&gt;&quot;, &quot;&amp;&quot; をエスケープすることで緩和できます。例えば <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>
<div class="highlight-html notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>これは、ページ内でのスクリプト実行を禁止する厳格なコンテンツセキュリティポリシーと互換性があります。また、受動的なデータと実行可能なコードをきれいに分離します。</p>
</section>
<section id="s-last">
<span id="s-std-templatefilter-last"></span><span id="last"></span><span id="std-templatefilter-last"></span><h3><code class="docutils literal notranslate"><span class="pre">last</span></code><a class="headerlink" href="#last" title="Link to this heading">¶</a></h3>
<p>リストの末尾の要素を返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">last</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-length">
<span id="s-std-templatefilter-length"></span><span id="length"></span><span id="std-templatefilter-length"></span><h3><code class="docutils literal notranslate"><span class="pre">length</span></code><a class="headerlink" href="#length" title="Link to this heading">¶</a></h3>
<p>入力値の長さを返します。これは、文字列とリストの両方で動作します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">length</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
<p>フィルタは未定義の変数に対して <code class="docutils literal notranslate"><span class="pre">0</span></code> を返します。</p>
</section>
<section id="s-linebreaks">
<span id="s-std-templatefilter-linebreaks"></span><span id="linebreaks"></span><span id="std-templatefilter-linebreaks"></span><h3><code class="docutils literal notranslate"><span class="pre">linebreaks</span></code><a class="headerlink" href="#linebreaks" title="Link to this heading">¶</a></h3>
<p>プレーンテキストの改行を適切な HTML タグに変換します。 改行 1 つは改行タグ (<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">linebreaks</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-linebreaksbr">
<span id="s-std-templatefilter-linebreaksbr"></span><span id="linebreaksbr"></span><span id="std-templatefilter-linebreaksbr"></span><h3><code class="docutils literal notranslate"><span class="pre">linebreaksbr</span></code><a class="headerlink" href="#linebreaksbr" title="Link to this heading">¶</a></h3>
<p>プレーンテキストの改行を HTML の改行タグ (<code class="docutils literal notranslate"><span class="pre">&lt;br&gt;</span></code>) に変換します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">linebreaksbr</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-linenumbers">
<span id="s-std-templatefilter-linenumbers"></span><span id="linenumbers"></span><span id="std-templatefilter-linenumbers"></span><h3><code class="docutils literal notranslate"><span class="pre">linenumbers</span></code><a class="headerlink" href="#linenumbers" title="Link to this heading">¶</a></h3>
<p>テキストを行番号付きで表示します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">linenumbers</span> <span class="cp">}}</span>
</pre></div>
</div>
<p><code class="docutils literal notranslate"><span class="pre">value</span></code> が以下の内容であるとします:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>one
two
three
</pre></div>
</div>
<p>このとき出力は次のようになります:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>1. one
2. two
3. three
</pre></div>
</div>
</section>
<section id="s-ljust">
<span id="s-std-templatefilter-ljust"></span><span id="ljust"></span><span id="std-templatefilter-ljust"></span><h3><code class="docutils literal notranslate"><span class="pre">ljust</span></code><a class="headerlink" href="#ljust" title="Link to this heading">¶</a></h3>
<p>入力値を指定した幅のフィールド内で左詰めします。</p>
<p><strong>引数:</strong> フィールドの幅</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>&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;
</pre></div>
</div>
<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>
</section>
<section id="s-lower">
<span id="s-std-templatefilter-lower"></span><span id="lower"></span><span id="std-templatefilter-lower"></span><h3><code class="docutils literal notranslate"><span class="pre">lower</span></code><a class="headerlink" href="#lower" title="Link to this heading">¶</a></h3>
<p>文字列を全て小文字に変換します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">lower</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-make-list">
<span id="s-std-templatefilter-make_list"></span><span id="make-list"></span><span id="std-templatefilter-make_list"></span><h3><code class="docutils literal notranslate"><span class="pre">make_list</span></code><a class="headerlink" href="#make-list" title="Link to this heading">¶</a></h3>
<p>リストに変換された値を返します。文字列の場合は、文字のリストになります。整数の場合は、リストを作成する前に引数を文字列にキャストします。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">make_list</span> <span class="cp">}}</span>
</pre></div>
</div>
<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',</span> <span class="pre">'2',</span> <span class="pre">'3']</span></code> となります。</p>
</section>
<section id="s-phone2numeric">
<span id="s-std-templatefilter-phone2numeric"></span><span id="phone2numeric"></span><span id="std-templatefilter-phone2numeric"></span><h3><code class="docutils literal notranslate"><span class="pre">phone2numeric</span></code><a class="headerlink" href="#phone2numeric" title="Link to this heading">¶</a></h3>
<p>電話番号 (文字を含む場合もあります) を数値だけの番号に変換します。</p>
<p>入力値は正しい電話番号でなくてもかまいません。このフィルタはどんな文字列でも変換します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">phone2numeric</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-pluralize">
<span id="s-std-templatefilter-pluralize"></span><span id="pluralize"></span><span id="std-templatefilter-pluralize"></span><h3><code class="docutils literal notranslate"><span class="pre">pluralize</span></code><a class="headerlink" href="#pluralize" title="Link to this heading">¶</a></h3>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>.
</pre></div>
</div>
<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>
<p><code class="docutils literal notranslate"><span class="pre">'s'</span></code> 以外の接尾辞が必要な場合は、代わりの接尾辞をフィルタの引数で指定できます。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>.
</pre></div>
</div>
<p>単純な接尾辞では複数形にできない単語の場合、単数形と複数形の接尾辞の両方をコンマで区切って指定できます。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>.
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<p>飜訳された文字列を複数形に変換するときは <a class="reference internal" href="../../topics/i18n/translation.html#std-templatetag-blocktranslate"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">blocktranslate</span></code></a> を使ってください。</p>
</div>
</section>
<section id="s-pprint">
<span id="s-std-templatefilter-pprint"></span><span id="pprint"></span><span id="std-templatefilter-pprint"></span><h3><code class="docutils literal notranslate"><span class="pre">pprint</span></code><a class="headerlink" href="#pprint" title="Link to this heading">¶</a></h3>
<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>
</section>
<section id="s-random">
<span id="s-std-templatefilter-random"></span><span id="random"></span><span id="std-templatefilter-random"></span><h3><code class="docutils literal notranslate"><span class="pre">random</span></code><a class="headerlink" href="#random" title="Link to this heading">¶</a></h3>
<p>与えられたリストからランダムな要素を返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">random</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-rjust">
<span id="s-std-templatefilter-rjust"></span><span id="rjust"></span><span id="std-templatefilter-rjust"></span><h3><code class="docutils literal notranslate"><span class="pre">rjust</span></code><a class="headerlink" href="#rjust" title="Link to this heading">¶</a></h3>
<p>入力値を指定した幅のフィールド内で右詰めします。</p>
<p><strong>引数:</strong> フィールドの幅</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>&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;
</pre></div>
</div>
<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>
</section>
<section id="s-safe">
<span id="s-std-templatefilter-safe"></span><span id="safe"></span><span id="std-templatefilter-safe"></span><h3><code class="docutils literal notranslate"><span class="pre">safe</span></code><a class="headerlink" href="#safe" title="Link to this heading">¶</a></h3>
<p>文字列に対して、さらなる HTML エスケープが必要でないことをマークするのに使います。 autoescaping がオフの場合、このフィルタは何もしません。</p>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<p>フィルタを連鎖させる場合、 <code class="docutils literal notranslate"><span class="pre">safe</span></code> の後に適用されるフィルタはその内容を再び安全でない状態にしてしまうことが可能です。例えば以下のコードは、変数をそのまま、エスケープされない状態で出力します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
</div>
</section>
<section id="s-safeseq">
<span id="s-std-templatefilter-safeseq"></span><span id="safeseq"></span><span id="std-templatefilter-safeseq"></span><h3><code class="docutils literal notranslate"><span class="pre">safeseq</span></code><a class="headerlink" href="#safeseq" title="Link to this heading">¶</a></h3>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-slice">
<span id="s-std-templatefilter-slice"></span><span id="slice"></span><span id="std-templatefilter-slice"></span><h3><code class="docutils literal notranslate"><span class="pre">slice</span></code><a class="headerlink" href="#slice" title="Link to this heading">¶</a></h3>
<p>リストに対するスライスを返します。</p>
<p>Python のリストスライスと同じ構文を使います。 <a class="reference external" href="https://docs.python.org/3/tutorial/introduction.html#lists">Python ドキュメント</a> を参照してください。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-slugify">
<span id="s-std-templatefilter-slugify"></span><span id="slugify"></span><span id="std-templatefilter-slugify"></span><h3><code class="docutils literal notranslate"><span class="pre">slugify</span></code><a class="headerlink" href="#slugify" title="Link to this heading">¶</a></h3>
<p>ASCIIに変換します。スペースをハイフ​​ンに変換します。英数字以外の文字、アンダースコア、ハイフンは削除します。小文字に変換します。また、先頭と末尾の空白を取り除きます。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">slugify</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-stringformat">
<span id="s-std-templatefilter-stringformat"></span><span id="stringformat"></span><span id="std-templatefilter-stringformat"></span><h3><code class="docutils literal notranslate"><span class="pre">stringformat</span></code><a class="headerlink" href="#stringformat" title="Link to this heading">¶</a></h3>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-striptags">
<span id="s-std-templatefilter-striptags"></span><span id="striptags"></span><span id="std-templatefilter-striptags"></span><h3><code class="docutils literal notranslate"><span class="pre">striptags</span></code><a class="headerlink" href="#striptags" title="Link to this heading">¶</a></h3>
<p>[X]HTML タグを全てはぎとるようにします。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">striptags</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
<div class="admonition-no-safety-guarantee admonition">
<p class="admonition-title">安全性の保証はありません</p>
<p>注意してください。 <code class="docutils literal notranslate"><span class="pre">striptags</span></code> の出力は、特に不正な HTML の入力に対しては HTML の安全性を一切保証しません。 <code class="docutils literal notranslate"><span class="pre">striptags</span></code> の出力に <code class="docutils literal notranslate"><span class="pre">safe</span></code> フィルタを適用しては <strong>いけません</strong> 。より堅牢なものを探しているなら、サードパーティ製の HTML サニタイズツールの使用を検討してください。</p>
</div>
</section>
<section id="s-time">
<span id="s-std-templatefilter-time"></span><span id="time"></span><span id="std-templatefilter-time"></span><h3><code class="docutils literal notranslate"><span class="pre">time</span></code><a class="headerlink" href="#time" title="Link to this heading">¶</a></h3>
<p>時刻を指定の書式にしたがってフォーマットします。</p>
<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> と同様に、あらかじめ定義された <a class="reference internal" href="../settings.html#std-setting-TIME_FORMAT"><code class="xref std std-setting docutils literal notranslate"><span class="pre">TIME_FORMAT</span></code></a> のプリセット、またはカスタムフォーマットを使うこともできます。この定義はロケールに依存することに注意してください。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></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>
</pre></div>
</div>
<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>
<p>文字列の中でフォーマット文字を普通の文字として扱いたい場合は、バックスラッシュ文字（ <code class="docutils literal notranslate"><span class="pre">\</span></code> ）でエスケープします。次の例では、 &quot;h&quot; と &quot;m&quot; をエスケープしています。そうしないと、これらはそれぞれ年と時刻を表示するためのフォーマット文字とみなされるからです:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>上記は &quot;01h 23m&quot; と表示されます。</p>
<p>その他の例:</p>
<p>たとえば <a class="reference internal" href="../settings.html#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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>このときの出力は、<code class="docutils literal notranslate"><span class="pre">&quot;01:23&quot;</span></code> といった文字列になります (初期状態の Django では、ロケール <code class="docutils literal notranslate"><span class="pre">de</span></code> の <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>
<p>The <code class="docutils literal notranslate"><span class="pre">time</span></code> filter will only accept parameters in the format string that
relate 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>
value, 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
you 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>
<p>上記のルールにはひとつ例外があります。タイムゾーン情報が付加された <code class="docutils literal notranslate"><span class="pre">datetime</span></code> 値 (<a class="reference internal" href="../../topics/i18n/timezones.html#naive-vs-aware-datetimes"><span class="std std-ref">タイムゾーンを意識した aware な</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>
<p>フォーマット文字列なしで使用する場合は、 <code class="docutils literal notranslate"><span class="pre">TIME_FORMAT</span></code> フォーマット指定子が使用されます：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">time</span> <span class="cp">}}</span>
</pre></div>
</div>
<p>上記は以下と同じです：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
</section>
<section id="s-timesince">
<span id="s-std-templatefilter-timesince"></span><span id="timesince"></span><span id="std-templatefilter-timesince"></span><h3><code class="docutils literal notranslate"><span class="pre">timesince</span></code><a class="headerlink" href="#timesince" title="Link to this heading">¶</a></h3>
<p>日付を経過時間の形式にフォーマットします (たとえば &quot;4 days, 6 hours&quot;)。</p>
<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日 08:00 を表す日時オブジェクトであるとき、以下のコードは &quot;8 hours&quot; を返します：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>タイムゾーン情報を持たない値（offset-naive）と、タイムゾーン情報つき（offset-aware）の値とを比較した場合は、空の文字列を返します。</p>
<p>最小単位は &quot;分&quot; です。比較対象からみて未来にある日時に対しては &quot;0 minutes&quot; を返します。</p>
</section>
<section id="s-timeuntil">
<span id="s-std-templatefilter-timeuntil"></span><span id="timeuntil"></span><span id="std-templatefilter-timeuntil"></span><h3><code class="docutils literal notranslate"><span class="pre">timeuntil</span></code><a class="headerlink" href="#timeuntil" title="Link to this heading">¶</a></h3>
<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">{{</span> <span class="pre">conference_date|timeuntil</span> <span class="pre">}}</span></code> は &quot;4 weeks&quot; を返します。</p>
<p>オプションの引数として、 (<em>現在時刻</em> の代わりに) 比較対象として使う時刻をとります。 例えば、 from_date が 2006年 6月 22日 の場合、以下のコードは &quot;1 week&quot; を返します:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<p>タイムゾーン情報を持たない値（offset-naive）と、タイムゾーン情報つき（offset-aware）の値とを比較した場合は、空の文字列を返します。</p>
<p>最小単位は &quot;分&quot; です。比較対象からみて過去にある日時に対しては “0 minutes” を返します。</p>
</section>
<section id="s-title">
<span id="s-std-templatefilter-title"></span><span id="title"></span><span id="std-templatefilter-title"></span><h3><code class="docutils literal notranslate"><span class="pre">title</span></code><a class="headerlink" href="#title" title="Link to this heading">¶</a></h3>
<p>文字列中の単語に対して、それぞれ先頭の文字を大文字に、残りを小文字にすることで文字列をタイトルケースに変換します。&quot;主要でない単語&quot; については小文字を維持できないこともあります。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">title</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-truncatechars">
<span id="s-std-templatefilter-truncatechars"></span><span id="truncatechars"></span><span id="std-templatefilter-truncatechars"></span><h3><code class="docutils literal notranslate"><span class="pre">truncatechars</span></code><a class="headerlink" href="#truncatechars" title="Link to this heading">¶</a></h3>
<p>文字列が指定した文字数より長い場合は切り捨てます。切り捨てられた文字列の末尾は、翻訳可能な省略記号 (&quot;...&quot;) になります。</p>
<p><strong>引数:</strong> 切り詰める文字数</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-truncatechars-html">
<span id="s-std-templatefilter-truncatechars_html"></span><span id="truncatechars-html"></span><span id="std-templatefilter-truncatechars_html"></span><h3><code class="docutils literal notranslate"><span class="pre">truncatechars_html</span></code><a class="headerlink" href="#truncatechars-html" title="Link to this heading">¶</a></h3>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<p>HTML コンテンツ内の改行は保持されます。</p>
<div class="admonition-size-of-input-string admonition">
<p class="admonition-title">入力文字列のサイズ</p>
<p>大きく、潜在的に不正なHTML文字列を処理することは、リソースを消費し、サービスのパフォーマンスに影響を与える可能性があります。 <code class="docutils literal notranslate"><span class="pre">truncatechars_html</span></code> は入力を最初の500万文字に制限します。</p>
</div>
</section>
<section id="s-truncatewords">
<span id="s-std-templatefilter-truncatewords"></span><span id="truncatewords"></span><span id="std-templatefilter-truncatewords"></span><h3><code class="docutils literal notranslate"><span class="pre">truncatewords</span></code><a class="headerlink" href="#truncatewords" title="Link to this heading">¶</a></h3>
<p>文字列を指定された単語数以内に切り詰めます。</p>
<p><strong>引数:</strong> 切り詰めた後の単語数</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<p>文字列中の改行は取り除かれます。</p>
</section>
<section id="s-truncatewords-html">
<span id="s-std-templatefilter-truncatewords_html"></span><span id="truncatewords-html"></span><span id="std-templatefilter-truncatewords_html"></span><h3><code class="docutils literal notranslate"><span class="pre">truncatewords_html</span></code><a class="headerlink" href="#truncatewords-html" title="Link to this heading">¶</a></h3>
<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>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<p>HTML コンテンツ内の改行は保持されます。</p>
<div class="admonition-size-of-input-string admonition">
<p class="admonition-title">入力文字列のサイズ</p>
<p>大きく、潜在的に不正なHTML文字列を処理することは、リソースを消費し、サービスのパフォーマンスに影響を与える可能性があります。 <code class="docutils literal notranslate"><span class="pre">truncatewords_html</span></code> は入力を最初の500万文字に制限します。</p>
</div>
</section>
<section id="s-unordered-list">
<span id="s-std-templatefilter-unordered_list"></span><span id="unordered-list"></span><span id="std-templatefilter-unordered_list"></span><h3><code class="docutils literal notranslate"><span class="pre">unordered_list</span></code><a class="headerlink" href="#unordered-list" title="Link to this heading">¶</a></h3>
<p>再帰的に入れ子になったリストを入力として、 HTML の順序なしリスト (UL, unordered list) に変換します。ただし先頭と末尾の <code class="docutils literal notranslate"><span class="pre">&lt;ul&gt;</span></code> タグは表示しません。</p>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>States
<span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
        <span class="p">&lt;</span><span class="nt">li</span><span class="p">&gt;</span>Kansas
        <span class="p">&lt;</span><span class="nt">ul</span><span class="p">&gt;</span>
                <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>
                <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>
        <span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
        <span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
        <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>
<span class="p">&lt;/</span><span class="nt">ul</span><span class="p">&gt;</span>
<span class="p">&lt;/</span><span class="nt">li</span><span class="p">&gt;</span>
</pre></div>
</div>
</section>
<section id="s-upper">
<span id="s-std-templatefilter-upper"></span><span id="upper"></span><span id="std-templatefilter-upper"></span><h3><code class="docutils literal notranslate"><span class="pre">upper</span></code><a class="headerlink" href="#upper" title="Link to this heading">¶</a></h3>
<p>入力値をすべて大文字に変換します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">upper</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-urlencode">
<span id="s-std-templatefilter-urlencode"></span><span id="urlencode"></span><span id="std-templatefilter-urlencode"></span><h3><code class="docutils literal notranslate"><span class="pre">urlencode</span></code><a class="headerlink" href="#urlencode" title="Link to this heading">¶</a></h3>
<p>入力値を URL で使えるようにエスケープします。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">urlencode</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
<p>オプションの引数で、エスケープさせない文字を指定できます。</p>
<p>特に指定しなくても '/' の文字はエスケープされません。オプションで空の文字列が指定された場合は、<em>すべての</em> 文字がエスケープされます。例を挙げます:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
</section>
<section id="s-urlize">
<span id="s-std-templatefilter-urlize"></span><span id="urlize"></span><span id="std-templatefilter-urlize"></span><h3><code class="docutils literal notranslate"><span class="pre">urlize</span></code><a class="headerlink" href="#urlize" title="Link to this heading">¶</a></h3>
<p>テキスト内の URL と Email アドレスをクリック可能なリンクに変換します。</p>
<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>
<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>
<p>リンクの末尾に句読点（ピリオド、カンマ、閉じ括弧）や先頭に句読点（開き括弧）があっても、 <code class="docutils literal notranslate"><span class="pre">urlize</span></code> は正しく処理します。</p>
<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>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">urlize</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>
</pre></div>
</div>
<div class="deprecated">
<p><span class="versionmodified deprecated">Deprecated since version 6.0: </span>The default protocol when none is provided will change from HTTP to HTTPS
in Django 7.0. Hence, the output will become:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>
</pre></div>
</div>
<p>Set the transitional setting <a class="reference internal" href="../settings.html#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
opt into using HTTPS during the Django 6.x release cycle.</p>
</div>
<p>ウェブリンクに加えて、 <code class="docutils literal notranslate"><span class="pre">urlize</span></code> は email アドレスも <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>
<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>
<div class="admonition note">
<p class="admonition-title">注釈</p>
<p>もし <code class="docutils literal notranslate"><span class="pre">urlize</span></code> をすでに HTML マークアップを含むテキストに適用したり、シングルクォート(<code class="docutils literal notranslate"><span class="pre">'</span></code>)を含むメールアドレスに適用したりすると、期待通りに動作しません。このフィルタはプレーンテキストにだけ適用してください。</p>
</div>
</section>
<section id="s-urlizetrunc">
<span id="s-std-templatefilter-urlizetrunc"></span><span id="urlizetrunc"></span><span id="std-templatefilter-urlizetrunc"></span><h3><code class="docutils literal notranslate"><span class="pre">urlizetrunc</span></code><a class="headerlink" href="#urlizetrunc" title="Link to this heading">¶</a></h3>
<p><a class="reference internal" href="#urlize">urlize</a> と同じように、URL と　email アドレスをクリック可能なリンクに変換します。ただし、指定の文字数以上の表示を切り詰めます。</p>
<p><strong>引数:</strong> URL を切り詰める長さ。省略記号の長さを含みます。省略記号は省略が必要な場合につけられます。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>
</pre></div>
</div>
<div class="deprecated">
<p><span class="versionmodified deprecated">Deprecated since version 6.0: </span>The default protocol when none is provided will change from HTTP to HTTPS
in Django 7.0. Hence, the output will become:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>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>
</pre></div>
</div>
<p>Set the transitional setting <a class="reference internal" href="../settings.html#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
opt into using HTTPS during the Django 6.x release cycle.</p>
</div>
<p><a class="reference internal" href="#urlize">urlize</a> と同じく、このフィルタはプレーンテキストに対してだけ使ってください。</p>
</section>
<section id="s-wordcount">
<span id="s-std-templatefilter-wordcount"></span><span id="wordcount"></span><span id="std-templatefilter-wordcount"></span><h3><code class="docutils literal notranslate"><span class="pre">wordcount</span></code><a class="headerlink" href="#wordcount" title="Link to this heading">¶</a></h3>
<p>ワード数を返します。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{{</span> <span class="nv">value</span><span class="o">|</span><span class="nf">wordcount</span> <span class="cp">}}</span>
</pre></div>
</div>
<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>
</section>
<section id="s-wordwrap">
<span id="s-std-templatefilter-wordwrap"></span><span id="wordwrap"></span><span id="std-templatefilter-wordwrap"></span><h3><code class="docutils literal notranslate"><span class="pre">wordwrap</span></code><a class="headerlink" href="#wordwrap" title="Link to this heading">¶</a></h3>
<p>指定した行幅でワードラップします。</p>
<p><strong>引数:</strong> テキストをラップするまでのワード数</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span>Joel
is a
slug
</pre></div>
</div>
</section>
<section id="s-yesno">
<span id="s-std-templatefilter-yesno"></span><span id="yesno"></span><span id="std-templatefilter-yesno"></span><h3><code class="docutils literal notranslate"><span class="pre">yesno</span></code><a class="headerlink" href="#yesno" title="Link to this heading">¶</a></h3>
<p>入力値 ( &quot;True&quot; 、 &quot;False&quot; 、オプションで &quot;None&quot; ) に対応する文字列を返します。対応する文字列はデフォルトでは &quot;yes&quot;、&quot;no&quot;、&quot;maybe&quot; です。またコンマ区切りの文字列を引数として与えることでカスタムマッピングを指定できます。</p>
<p>例:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><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>
</pre></div>
</div>
<table class="docutils">
<thead>
<tr class="row-odd"><th class="head"><p>値</p></th>
<th class="head"><p>引数</p></th>
<th class="head"><p>出力</p></th>
</tr>
</thead>
<tbody>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">True</span></code></p></td>
<td></td>
<td><p><code class="docutils literal notranslate"><span class="pre">yes</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">True</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no,maybe&quot;</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">yeah</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">False</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no,maybe&quot;</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">no</span></code></p></td>
</tr>
<tr class="row-odd"><td><p><code class="docutils literal notranslate"><span class="pre">None</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no,maybe&quot;</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">maybe</span></code></p></td>
</tr>
<tr class="row-even"><td><p><code class="docutils literal notranslate"><span class="pre">None</span></code></p></td>
<td><p><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no&quot;</span></code></p></td>
<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">False</span></code> の値が使われます)</p></td>
</tr>
</tbody>
</table>
</section>
</section>
<section id="s-internationalization-tags-and-filters">
<span id="internationalization-tags-and-filters"></span><h2>国際化タグとフィルタ<a class="headerlink" href="#internationalization-tags-and-filters" title="Link to this heading">¶</a></h2>
<p>Django はテンプレートの <a class="reference internal" href="../../topics/i18n/index.html"><span class="doc">国際化</span></a> をそれぞれの角度から制御するタグやフィルタを提供し、翻訳、書式設定、およびタイムゾーン変換のきめ細かい制御を可能にしています。</p>
<section id="s-i18n">
<span id="i18n"></span><h3><code class="docutils literal notranslate"><span class="pre">i18n</span></code><a class="headerlink" href="#i18n" title="Link to this heading">¶</a></h3>
<p>このライブラリは、テンプレート内の飜訳可能なテキストを指定できます。これを有効化するには <a class="reference internal" href="../settings.html#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>
<p><a class="reference internal" href="../../topics/i18n/translation.html#specifying-translation-strings-in-template-code"><span class="std std-ref">国際化: テンプレート内</span></a> も参照してください。</p>
</section>
<section id="s-l10n">
<span id="l10n"></span><h3><code class="docutils literal notranslate"><span class="pre">l10n</span></code><a class="headerlink" href="#l10n" title="Link to this heading">¶</a></h3>
<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>
<p><a class="reference internal" href="../../topics/i18n/formatting.html#topic-l10n-templates"><span class="std std-ref">テンプレート内でローカライズをコントロールする</span></a> も参照してください。</p>
</section>
<section id="s-tz">
<span id="tz"></span><h3><code class="docutils literal notranslate"><span class="pre">tz</span></code><a class="headerlink" href="#tz" title="Link to this heading">¶</a></h3>
<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="../settings.html#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>
<p><a class="reference internal" href="../../topics/i18n/timezones.html#time-zones-in-templates"><span class="std std-ref">テンプレートでのタイムゾーン aware な出力</span></a> も参照してください。</p>
</section>
</section>
<section id="s-other-tags-and-filters-libraries">
<span id="other-tags-and-filters-libraries"></span><h2>その他のタグとフィルタライブラリ<a class="headerlink" href="#other-tags-and-filters-libraries" title="Link to this heading">¶</a></h2>
<p>この他にも、Django にはいくつかのテンプレートタグ・ライブラリがあります。これらのライブラリは <a class="reference internal" href="../settings.html#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>
<section id="s-django-contrib-humanize">
<span id="django-contrib-humanize"></span><h3><code class="docutils literal notranslate"><span class="pre">django.contrib.humanize</span></code><a class="headerlink" href="#django-contrib-humanize" title="Link to this heading">¶</a></h3>
<p>データを「ヒトにやさしい」表現にする上で便利な Django テンプレートフィルタのセットです。くわしくは <a class="reference internal" href="../contrib/humanize.html"><span class="doc">django.contrib.humanize</span></a> を参照してください。</p>
</section>
<section id="s-static">
<span id="static"></span><h3><code class="docutils literal notranslate"><span class="pre">static</span></code><a class="headerlink" href="#static" title="Link to this heading">¶</a></h3>
<section id="s-std-templatetag-static">
<span id="s-id7"></span><span id="std-templatetag-static"></span><span id="id7"></span><h4><code class="docutils literal notranslate"><span class="pre">static</span></code><a class="headerlink" href="#std-templatetag-static" title="Link to this heading">¶</a></h4>
<p><a class="reference internal" href="../settings.html#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="../contrib/staticfiles.html#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="../settings.html#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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">load</span> <span class="nv">static</span> <span class="cp">%}</span>
<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>
</pre></div>
</div>
<p>普通のコンテキスト変数を使うこともできます。例えば <code class="docutils literal notranslate"><span class="pre">user_stylesheet</span></code> 変数をテンプレートに渡す場合は、以下のようにします:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">load</span> <span class="nv">static</span> <span class="cp">%}</span>
<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>
</pre></div>
</div>
<p>静的 URL を表示することなく取得したい場合は、少し異なる呼び出し方法になります：</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">load</span> <span class="nv">static</span> <span class="cp">%}</span>
<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>
<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>
</pre></div>
</div>
<div class="admonition-using-jinja2-templates admonition">
<p class="admonition-title">Jinja2 テンプレートを使いますか？</p>
<p>Jinja2 で <code class="docutils literal notranslate"><span class="pre">static</span></code> タグを使う方法については <a class="reference internal" href="../../topics/templates.html#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> を参照してください。</p>
</div>
</section>
<section id="s-get-static-prefix">
<span id="s-std-templatetag-get_static_prefix"></span><span id="get-static-prefix"></span><span id="std-templatetag-get_static_prefix"></span><h4><code class="docutils literal notranslate"><span class="pre">get_static_prefix</span></code><a class="headerlink" href="#get-static-prefix" title="Link to this heading">¶</a></h4>
<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="../settings.html#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>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">load</span> <span class="nv">static</span> <span class="cp">%}</span>
<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>
</pre></div>
</div>
<p>値を何度も使う必要がある場合、不要な処理を避けるために使用できる別の方式もあります:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">load</span> <span class="nv">static</span> <span class="cp">%}</span>
<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>

<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>
<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>
</pre></div>
</div>
</section>
<section id="s-get-media-prefix">
<span id="s-std-templatetag-get_media_prefix"></span><span id="get-media-prefix"></span><span id="std-templatetag-get_media_prefix"></span><h4><code class="docutils literal notranslate"><span class="pre">get_media_prefix</span></code><a class="headerlink" href="#get-media-prefix" title="Link to this heading">¶</a></h4>
<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="../settings.html#std-setting-MEDIA_URL"><code class="xref std std-setting docutils literal notranslate"><span class="pre">MEDIA_URL</span></code></a> のメディア・プレフィックスを加えます。たとえば:</p>
<div class="highlight-html+django notranslate"><div class="highlight"><pre><span></span><span class="cp">{%</span> <span class="k">load</span> <span class="nv">static</span> <span class="cp">%}</span>
<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>
</pre></div>
</div>
<p>値をデータ属性に格納することで、JavaScriptのコンテキストで使用する場合に適切にエスケープされるようになります。</p>
</section>
</section>
</section>
</section>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar" role="navigation" aria-label="Main">
        <div class="sphinxsidebarwrapper">
  <div>
    <h3><a href="../../contents.html">目次</a></h3>
    <ul>
<li><a class="reference internal" href="#">組み込みテンプレートタグとフィルタ</a><ul>
<li><a class="reference internal" href="#built-in-tag-reference">組み込みタグリファレンス</a><ul>
<li><a class="reference internal" href="#autoescape"><code class="docutils literal notranslate"><span class="pre">autoescape</span></code></a></li>
<li><a class="reference internal" href="#block"><code class="docutils literal notranslate"><span class="pre">block</span></code></a></li>
<li><a class="reference internal" href="#comment"><code class="docutils literal notranslate"><span class="pre">comment</span></code></a></li>
<li><a class="reference internal" href="#csrf-token"><code class="docutils literal notranslate"><span class="pre">csrf_token</span></code></a></li>
<li><a class="reference internal" href="#cycle"><code class="docutils literal notranslate"><span class="pre">cycle</span></code></a></li>
<li><a class="reference internal" href="#debug"><code class="docutils literal notranslate"><span class="pre">debug</span></code></a></li>
<li><a class="reference internal" href="#extends"><code class="docutils literal notranslate"><span class="pre">extends</span></code></a></li>
<li><a class="reference internal" href="#filter"><code class="docutils literal notranslate"><span class="pre">filter</span></code></a></li>
<li><a class="reference internal" href="#firstof"><code class="docutils literal notranslate"><span class="pre">firstof</span></code></a></li>
<li><a class="reference internal" href="#for"><code class="docutils literal notranslate"><span class="pre">for</span></code></a></li>
<li><a class="reference internal" href="#for-empty"><code class="docutils literal notranslate"><span class="pre">for</span></code> ... <code class="docutils literal notranslate"><span class="pre">empty</span></code></a></li>
<li><a class="reference internal" href="#if"><code class="docutils literal notranslate"><span class="pre">if</span></code></a><ul>
<li><a class="reference internal" href="#boolean-operators">論理演算子</a><ul>
<li><a class="reference internal" href="#operator"><code class="docutils literal notranslate"><span class="pre">==</span></code> 演算子</a></li>
<li><a class="reference internal" href="#id1"><code class="docutils literal notranslate"><span class="pre">!=</span></code> 演算子</a></li>
<li><a class="reference internal" href="#id2"><code class="docutils literal notranslate"><span class="pre">&lt;</span></code> 演算子</a></li>
<li><a class="reference internal" href="#id3"><code class="docutils literal notranslate"><span class="pre">&gt;</span></code> 演算子</a></li>
<li><a class="reference internal" href="#id4"><code class="docutils literal notranslate"><span class="pre">&lt;=</span></code> 演算子</a></li>
<li><a class="reference internal" href="#id5"><code class="docutils literal notranslate"><span class="pre">&gt;=</span></code> 演算子</a></li>
<li><a class="reference internal" href="#in-operator"><code class="docutils literal notranslate"><span class="pre">in</span></code> 演算子</a></li>
<li><a class="reference internal" href="#not-in-operator"><code class="docutils literal notranslate"><span class="pre">not</span> <span class="pre">in</span></code> 演算子</a></li>
<li><a class="reference internal" href="#is-operator"><code class="docutils literal notranslate"><span class="pre">is</span></code> 演算子</a></li>
<li><a class="reference internal" href="#is-not-operator"><code class="docutils literal notranslate"><span class="pre">is</span> <span class="pre">not</span></code> 演算子</a></li>
</ul>
</li>
<li><a class="reference internal" href="#filters">フィルタ</a></li>
<li><a class="reference internal" href="#complex-expressions">複雑な表現</a></li>
</ul>
</li>
<li><a class="reference internal" href="#ifchanged"><code class="docutils literal notranslate"><span class="pre">ifchanged</span></code></a></li>
<li><a class="reference internal" href="#include"><code class="docutils literal notranslate"><span class="pre">include</span></code></a></li>
<li><a class="reference internal" href="#load"><code class="docutils literal notranslate"><span class="pre">load</span></code></a></li>
<li><a class="reference internal" href="#lorem"><code class="docutils literal notranslate"><span class="pre">lorem</span></code></a></li>
<li><a class="reference internal" href="#now"><code class="docutils literal notranslate"><span class="pre">now</span></code></a></li>
<li><a class="reference internal" href="#partial"><code class="docutils literal notranslate"><span class="pre">partial</span></code></a></li>
<li><a class="reference internal" href="#partialdef"><code class="docutils literal notranslate"><span class="pre">partialdef</span></code></a></li>
<li><a class="reference internal" href="#querystring"><code class="docutils literal notranslate"><span class="pre">querystring</span></code></a><ul>
<li><a class="reference internal" href="#basic-usage">基本的な使用法</a></li>
<li><a class="reference internal" href="#setting-items">アイテムをセットする</a></li>
<li><a class="reference internal" href="#removing-items">アイテムを削除する</a></li>
<li><a class="reference internal" href="#handling-lists">リストを扱う</a></li>
<li><a class="reference internal" href="#customizing-the-base-querydict">Customizing the base QueryDict</a></li>
<li><a class="reference internal" href="#dynamic-usage">動的な使用方法</a></li>
</ul>
</li>
<li><a class="reference internal" href="#regroup"><code class="docutils literal notranslate"><span class="pre">regroup</span></code></a><ul>
<li><a class="reference internal" href="#grouping-on-other-properties">その他の属性によるグループ化</a></li>
</ul>
</li>
<li><a class="reference internal" href="#resetcycle"><code class="docutils literal notranslate"><span class="pre">resetcycle</span></code></a></li>
<li><a class="reference internal" href="#spaceless"><code class="docutils literal notranslate"><span class="pre">spaceless</span></code></a></li>
<li><a class="reference internal" href="#templatetag"><code class="docutils literal notranslate"><span class="pre">templatetag</span></code></a></li>
<li><a class="reference internal" href="#url"><code class="docutils literal notranslate"><span class="pre">url</span></code></a></li>
<li><a class="reference internal" href="#verbatim"><code class="docutils literal notranslate"><span class="pre">verbatim</span></code></a></li>
<li><a class="reference internal" href="#widthratio"><code class="docutils literal notranslate"><span class="pre">widthratio</span></code></a></li>
<li><a class="reference internal" href="#with"><code class="docutils literal notranslate"><span class="pre">with</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#built-in-filter-reference">組み込みフィルタリファレンス</a><ul>
<li><a class="reference internal" href="#add"><code class="docutils literal notranslate"><span class="pre">add</span></code></a></li>
<li><a class="reference internal" href="#addslashes"><code class="docutils literal notranslate"><span class="pre">addslashes</span></code></a></li>
<li><a class="reference internal" href="#capfirst"><code class="docutils literal notranslate"><span class="pre">capfirst</span></code></a></li>
<li><a class="reference internal" href="#center"><code class="docutils literal notranslate"><span class="pre">center</span></code></a></li>
<li><a class="reference internal" href="#cut"><code class="docutils literal notranslate"><span class="pre">cut</span></code></a></li>
<li><a class="reference internal" href="#date"><code class="docutils literal notranslate"><span class="pre">date</span></code></a></li>
<li><a class="reference internal" href="#default"><code class="docutils literal notranslate"><span class="pre">default</span></code></a></li>
<li><a class="reference internal" href="#default-if-none"><code class="docutils literal notranslate"><span class="pre">default_if_none</span></code></a></li>
<li><a class="reference internal" href="#dictsort"><code class="docutils literal notranslate"><span class="pre">dictsort</span></code></a></li>
<li><a class="reference internal" href="#dictsortreversed"><code class="docutils literal notranslate"><span class="pre">dictsortreversed</span></code></a></li>
<li><a class="reference internal" href="#divisibleby"><code class="docutils literal notranslate"><span class="pre">divisibleby</span></code></a></li>
<li><a class="reference internal" href="#escape"><code class="docutils literal notranslate"><span class="pre">escape</span></code></a></li>
<li><a class="reference internal" href="#escapejs"><code class="docutils literal notranslate"><span class="pre">escapejs</span></code></a></li>
<li><a class="reference internal" href="#escapeseq"><code class="docutils literal notranslate"><span class="pre">escapeseq</span></code></a></li>
<li><a class="reference internal" href="#filesizeformat"><code class="docutils literal notranslate"><span class="pre">filesizeformat</span></code></a></li>
<li><a class="reference internal" href="#first"><code class="docutils literal notranslate"><span class="pre">first</span></code></a></li>
<li><a class="reference internal" href="#floatformat"><code class="docutils literal notranslate"><span class="pre">floatformat</span></code></a></li>
<li><a class="reference internal" href="#force-escape"><code class="docutils literal notranslate"><span class="pre">force_escape</span></code></a></li>
<li><a class="reference internal" href="#get-digit"><code class="docutils literal notranslate"><span class="pre">get_digit</span></code></a></li>
<li><a class="reference internal" href="#iriencode"><code class="docutils literal notranslate"><span class="pre">iriencode</span></code></a></li>
<li><a class="reference internal" href="#join"><code class="docutils literal notranslate"><span class="pre">join</span></code></a></li>
<li><a class="reference internal" href="#json-script"><code class="docutils literal notranslate"><span class="pre">json_script</span></code></a></li>
<li><a class="reference internal" href="#last"><code class="docutils literal notranslate"><span class="pre">last</span></code></a></li>
<li><a class="reference internal" href="#length"><code class="docutils literal notranslate"><span class="pre">length</span></code></a></li>
<li><a class="reference internal" href="#linebreaks"><code class="docutils literal notranslate"><span class="pre">linebreaks</span></code></a></li>
<li><a class="reference internal" href="#linebreaksbr"><code class="docutils literal notranslate"><span class="pre">linebreaksbr</span></code></a></li>
<li><a class="reference internal" href="#linenumbers"><code class="docutils literal notranslate"><span class="pre">linenumbers</span></code></a></li>
<li><a class="reference internal" href="#ljust"><code class="docutils literal notranslate"><span class="pre">ljust</span></code></a></li>
<li><a class="reference internal" href="#lower"><code class="docutils literal notranslate"><span class="pre">lower</span></code></a></li>
<li><a class="reference internal" href="#make-list"><code class="docutils literal notranslate"><span class="pre">make_list</span></code></a></li>
<li><a class="reference internal" href="#phone2numeric"><code class="docutils literal notranslate"><span class="pre">phone2numeric</span></code></a></li>
<li><a class="reference internal" href="#pluralize"><code class="docutils literal notranslate"><span class="pre">pluralize</span></code></a></li>
<li><a class="reference internal" href="#pprint"><code class="docutils literal notranslate"><span class="pre">pprint</span></code></a></li>
<li><a class="reference internal" href="#random"><code class="docutils literal notranslate"><span class="pre">random</span></code></a></li>
<li><a class="reference internal" href="#rjust"><code class="docutils literal notranslate"><span class="pre">rjust</span></code></a></li>
<li><a class="reference internal" href="#safe"><code class="docutils literal notranslate"><span class="pre">safe</span></code></a></li>
<li><a class="reference internal" href="#safeseq"><code class="docutils literal notranslate"><span class="pre">safeseq</span></code></a></li>
<li><a class="reference internal" href="#slice"><code class="docutils literal notranslate"><span class="pre">slice</span></code></a></li>
<li><a class="reference internal" href="#slugify"><code class="docutils literal notranslate"><span class="pre">slugify</span></code></a></li>
<li><a class="reference internal" href="#stringformat"><code class="docutils literal notranslate"><span class="pre">stringformat</span></code></a></li>
<li><a class="reference internal" href="#striptags"><code class="docutils literal notranslate"><span class="pre">striptags</span></code></a></li>
<li><a class="reference internal" href="#time"><code class="docutils literal notranslate"><span class="pre">time</span></code></a></li>
<li><a class="reference internal" href="#timesince"><code class="docutils literal notranslate"><span class="pre">timesince</span></code></a></li>
<li><a class="reference internal" href="#timeuntil"><code class="docutils literal notranslate"><span class="pre">timeuntil</span></code></a></li>
<li><a class="reference internal" href="#title"><code class="docutils literal notranslate"><span class="pre">title</span></code></a></li>
<li><a class="reference internal" href="#truncatechars"><code class="docutils literal notranslate"><span class="pre">truncatechars</span></code></a></li>
<li><a class="reference internal" href="#truncatechars-html"><code class="docutils literal notranslate"><span class="pre">truncatechars_html</span></code></a></li>
<li><a class="reference internal" href="#truncatewords"><code class="docutils literal notranslate"><span class="pre">truncatewords</span></code></a></li>
<li><a class="reference internal" href="#truncatewords-html"><code class="docutils literal notranslate"><span class="pre">truncatewords_html</span></code></a></li>
<li><a class="reference internal" href="#unordered-list"><code class="docutils literal notranslate"><span class="pre">unordered_list</span></code></a></li>
<li><a class="reference internal" href="#upper"><code class="docutils literal notranslate"><span class="pre">upper</span></code></a></li>
<li><a class="reference internal" href="#urlencode"><code class="docutils literal notranslate"><span class="pre">urlencode</span></code></a></li>
<li><a class="reference internal" href="#urlize"><code class="docutils literal notranslate"><span class="pre">urlize</span></code></a></li>
<li><a class="reference internal" href="#urlizetrunc"><code class="docutils literal notranslate"><span class="pre">urlizetrunc</span></code></a></li>
<li><a class="reference internal" href="#wordcount"><code class="docutils literal notranslate"><span class="pre">wordcount</span></code></a></li>
<li><a class="reference internal" href="#wordwrap"><code class="docutils literal notranslate"><span class="pre">wordwrap</span></code></a></li>
<li><a class="reference internal" href="#yesno"><code class="docutils literal notranslate"><span class="pre">yesno</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#internationalization-tags-and-filters">国際化タグとフィルタ</a><ul>
<li><a class="reference internal" href="#i18n"><code class="docutils literal notranslate"><span class="pre">i18n</span></code></a></li>
<li><a class="reference internal" href="#l10n"><code class="docutils literal notranslate"><span class="pre">l10n</span></code></a></li>
<li><a class="reference internal" href="#tz"><code class="docutils literal notranslate"><span class="pre">tz</span></code></a></li>
</ul>
</li>
<li><a class="reference internal" href="#other-tags-and-filters-libraries">その他のタグとフィルタライブラリ</a><ul>
<li><a class="reference internal" href="#django-contrib-humanize"><code class="docutils literal notranslate"><span class="pre">django.contrib.humanize</span></code></a></li>
<li><a class="reference internal" href="#static"><code class="docutils literal notranslate"><span class="pre">static</span></code></a><ul>
<li><a class="reference internal" href="#std-templatetag-static"><code class="docutils literal notranslate"><span class="pre">static</span></code></a></li>
<li><a class="reference internal" href="#get-static-prefix"><code class="docutils literal notranslate"><span class="pre">get_static_prefix</span></code></a></li>
<li><a class="reference internal" href="#get-media-prefix"><code class="docutils literal notranslate"><span class="pre">get_media_prefix</span></code></a></li>
</ul>
</li>
</ul>
</li>
</ul>
</li>
</ul>

  </div>
  <div>
    <h4>前のトピックへ</h4>
    <p class="topless"><a href="language.html"
                          title="前の章へ">Django テンプレート言語</a></p>
  </div>
  <div>
    <h4>次のトピックへ</h4>
    <p class="topless"><a href="api.html"
                          title="次の章へ">Python プログラマーのための Django テンプレート言語</a></p>
  </div>
  <div role="note" aria-label="source link">
    <h3>このページ</h3>
    <ul class="this-page-menu">
      <li><a href="../../_sources/ref/templates/builtins.txt"
            rel="nofollow">ソースコードを表示</a></li>
    </ul>
   </div>
<search id="searchbox" style="display: none" role="search">
  <h3 id="searchlabel">クイック検索</h3>
    <div class="searchformwrapper">
    <form class="search" action="../../search.html" method="get">
      <input type="text" name="q" aria-labelledby="searchlabel" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false"/>
      <input type="submit" value="検索" />
    </form>
    </div>
</search>
<script>document.getElementById('searchbox').style.display = "block"</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">12月 04, 2025</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="language.html" title="Django テンプレート言語">previous</a>
     |
    <a href="../index.html" title="API リファレンス" accesskey="U">up</a>
   |
    <a href="api.html" title="Python プログラマーのための Django テンプレート言語">next</a> &raquo;</div>
    </div>
  </div>

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