
<!DOCTYPE html>

<html lang="ja">
  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>組み込みタグとフィルタ &#8212; Django 4.1.8.dev20230308103347 ドキュメント</title>
    <link rel="stylesheet" type="text/css" href="../../_static/pygments.css" />
    <link rel="stylesheet" type="text/css" href="../../_static/default.css" />
    <script data-url_root="../../" id="documentation_options" src="../../_static/documentation_options.js"></script>
    <script src="../../_static/jquery.js"></script>
    <script src="../../_static/underscore.js"></script>
    <script src="../../_static/doctools.js"></script>
    <script src="../../_static/translations.js"></script>
    <link rel="index" title="索引" href="../../genindex.html" />
    <link rel="search" title="検索" href="../../search.html" />
    <link rel="next" title="The Django template language: for Python programmers" href="api.html" />
    <link rel="prev" title="The Django Template Language" 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 4.1.8.dev20230308103347 ドキュメント</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="The Django Template Language">previous</a>
     |
    <a href="../index.html" title="API Reference" accesskey="U">up</a>
   |
    <a href="api.html" title="The Django template language: for Python programmers">next</a> &raquo;</div>
    </div>

    <div id="bd">
      <div id="yui-main">
        <div class="yui-b">
          <div class="yui-g" id="ref-templates-builtins">
            
  <div class="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="このヘッドラインへのパーマリンク">¶</a></h1>
<p>このドキュメントでは、 Django の組み込みテンプレートタグとフィルタについて述べます。 また <a class="reference internal" href="../contrib/admin/admindocs.html"><span class="doc">automatic documentation</span></a> を使えばインストールされている組み込みタグとカスタムタグのドキュメントを読めるのでお勧めです。</p>
<div class="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="このヘッドラインへのパーマリンク">¶</a></h2>
<div class="section" id="s-autoescape">
<span id="s-std-templatetag-autoescape"></span><span id="s-std:templatetag-autoescape"></span><span id="autoescape"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>自動エスケープがオンの場合、すべての変数の値を出力前に 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>例外として、（ <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>使用例:</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>
</div>
<div class="section" id="s-block">
<span id="s-std-templatetag-block"></span><span id="s-std:templatetag-block"></span><span id="block"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>子テンプレートによってオーバーライドされる部分を定義します。詳しくは <a class="reference internal" href="language.html#template-inheritance"><span class="std std-ref">Template inheritance</span></a> を参照してください。</p>
</div>
<div class="section" id="s-comment">
<span id="s-std-templatetag-comment"></span><span id="s-std:templatetag-comment"></span><span id="comment"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-csrf-token">
<span id="s-std-templatetag-csrf_token"></span><span id="s-std:templatetag-csrf_token"></span><span id="csrf-token"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>このタグは CSRF の防止のために使用します。詳細は <a class="reference internal" href="../csrf.html"><span class="doc">Cross Site Request Forgeries</span></a> を参照してください。.</p>
</div>
<div class="section" id="s-cycle">
<span id="s-std-templatetag-cycle"></span><span id="s-std:templatetag-cycle"></span><span id="cycle"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>変数を使うことも出来ます。例えば、ここに 2 つのテンプレート変数 <code class="docutils literal notranslate"><span class="pre">rowvalue1</span></code> <code class="docutils literal notranslate"><span class="pre">rowvalue2</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">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><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="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>In some cases you might want to refer to the current value of a cycle
without advancing to the next value. To do this,
give the <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">cycle</span> <span class="pre">%}</span></code> tag a name, using &quot;as&quot;, like this:</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>You can use the <a class="reference internal" href="#std-templatetag-resetcycle"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">resetcycle</span></code></a> tag to make a <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">cycle</span> <span class="pre">%}</span></code> tag restart
from its first value when it's next encountered.</p>
</div>
<div class="section" id="s-debug">
<span id="s-std-templatetag-debug"></span><span id="s-std:templatetag-debug"></span><span id="debug"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Outputs a whole load of debugging information, including the current context
and imported modules. <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">debug</span> <span class="pre">%}</span></code> outputs nothing when the <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>
setting is <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p>
<div class="versionchanged">
<span class="title">Changed in Django 2.2.27:</span> <p>In older versions, debugging information was displayed when the
<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> setting was <code class="docutils literal notranslate"><span class="pre">False</span></code>.</p>
</div>
</div>
<div class="section" id="s-extends">
<span id="s-std-templatetag-extends"></span><span id="s-std:templatetag-extends"></span><span id="extends"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>このテンプレートが親テンプレートからの拡張であることを指示します。</p>
<p>このタグには 2 種類の使い方があります:</p>
<ul class="simple">
<li><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; を親テンプレートの名前として使います。</li>
<li><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 はそのオブジェクトを親テンプレートにします。</li>
</ul>
<p>詳しくは <a class="reference internal" href="language.html#template-inheritance"><span class="std std-ref">テンプレートの継承</span></a> を参照してください。</p>
<p>Normally the template name is relative to the template loader's root directory.
A string argument may also be a relative path starting with <code class="docutils literal notranslate"><span class="pre">./</span></code> or <code class="docutils literal notranslate"><span class="pre">../</span></code>.
For example, assume the following directory structure:</p>
<div class="highlight-html+django 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>
</div>
<div class="section" id="s-filter">
<span id="s-std-templatetag-filter"></span><span id="s-std:templatetag-filter"></span><span id="filter"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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="first admonition-title">注釈</p>
<p class="last"><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>
</div>
<div class="section" id="s-firstof">
<span id="s-std-templatetag-firstof"></span><span id="s-std:templatetag-firstof"></span><span id="firstof"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Outputs the first argument variable that is not &quot;false&quot; (i.e. exists, is not
empty, is not a false boolean value, and is not a zero numeric value). Outputs
nothing if all the passed variables are &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>すべての変数の値が <code class="docutils literal notranslate"><span class="pre">False</span></code> だった場合に表示させるフォールバック値として、 1 個の文字列リテラルを指定できます:</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>
</div>
<div class="section" id="s-for">
<span id="s-std-templatetag-for"></span><span id="s-std:templatetag-for"></span><span id="for"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>配列の各要素に渡ってループし、見つかった各要素を変数として使用します。例えば、アスリート (athlete) のリストを  <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>リストのリストにわたってループ処理を行う場合、各サブリストをアンパックして、個別に名前を割り当てることができます。例えば、座標を表すリスト (x, y) を格納したリスト <code class="docutils literal notranslate"><span class="pre">points</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">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">documentation of template variables</span></a> を参照してください。</p>
<p>for ループには、ループ内で使える多くの変数が設定されています:</p>
<table class="docutils">
<colgroup>
<col width="36%" />
<col width="64%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">変数</th>
<th class="head">説明</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">forloop.counter</span></code></td>
<td>現在のループカウンタ番号 ( 1 から順にカウント )</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">forloop.counter0</span></code></td>
<td>現在のループカウンタ番号 ( 0 から順にカウント )</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">forloop.revcounter</span></code></td>
<td>現在のループカウンタ値 ( 1 から順に、末尾からカウント)</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">forloop.revcounter0</span></code></td>
<td>現在のループカウンタ値 ( 0 から順に、末尾からカウント)</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">forloop.first</span></code></td>
<td>最初のループであれば True</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">forloop.last</span></code></td>
<td>最後のループであれば True</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">forloop.parentloop</span></code></td>
<td>入れ子のループであるとき、現在のループを囲んでいる 1 つ上のループを表します。</td>
</tr>
</tbody>
</table>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-if">
<span id="s-std-templatetag-if"></span><span id="s-std:templatetag-if"></span><span id="if"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>
<div class="section" id="s-boolean-operators">
<span id="boolean-operators"></span><h4>論理演算子<a class="headerlink" href="#boolean-operators" title="このヘッドラインへのパーマリンク">¶</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-python 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>
</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>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</a></h5>
<p>コンテナに含まれていない場合。これは <code class="docutils literal notranslate"><span class="pre">in</span></code> 演算子の逆です。</p>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</a></h5>
<p>Object identity. Tests if two values are the same object. Example:</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>
</div>
<div class="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> operator<a class="headerlink" href="#is-not-operator" title="このヘッドラインへのパーマリンク">¶</a></h5>
<p>Negated object identity. Tests if two values are not the same object. This is
the negation of the <code class="docutils literal notranslate"><span class="pre">is</span></code> operator. Example:</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>
</div>
</div>
<div class="section" id="s-filters">
<span id="filters"></span><h4>フィルター<a class="headerlink" href="#filters" title="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-complex-expressions">
<span id="complex-expressions"></span><h4>複雑な表現<a class="headerlink" href="#complex-expressions" title="このヘッドラインへのパーマリンク">¶</a></h4>
<p>ここまでのすべてを組み合わせて複雑な式を作ることができます。このような式では、式を評価するときに演算子がどのようにグループ化されるか、すなわち優先順位の規則を理解することが重要です。演算子の優先順位は次のようになっています:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">or</span></code></li>
<li><code class="docutils literal notranslate"><span class="pre">and</span></code></li>
<li><code class="docutils literal notranslate"><span class="pre">not</span></code></li>
<li><code class="docutils literal notranslate"><span class="pre">in</span></code></li>
<li><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></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>
</div>
</div>
<div class="section" id="s-ifchanged">
<span id="s-std-templatetag-ifchanged"></span><span id="s-std:templatetag-ifchanged"></span><span id="ifchanged"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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 class="first">今回の出力内容が、前回の状態に対して変化しているときだけ表示します。例えば、日付の一覧を表示する場合に、月が変わったときだけ月名を表示したければ以下のようにします:</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 class="first">タグに 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="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="s">        </span><span class="cp">{%</span> <span class="k">else</span> <span class="cp">%}</span><span class="s"></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"></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>
</div>
<div class="section" id="s-include">
<span id="s-std-templatetag-include"></span><span id="s-std:templatetag-include"></span><span id="include"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>テンプレートをロードし、現在のコンテキストを使って出力します。これはテンプレート内に他のテンプレートを取り込む（ “include” ）方法の一つです。</p>
<p>テンプレート名はハードコードされた (引用符で囲った) 文字列でもよく、引用符は一重引用符 （'...'）でも二重引用符（&quot;...&quot;）でもかまいません。</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>Normally the template name is relative to the template loader's root directory.
A string argument may also be a relative path starting with <code class="docutils literal notranslate"><span class="pre">./</span></code> or <code class="docutils literal notranslate"><span class="pre">../</span></code>
as described in the <a class="reference internal" href="#std-templatetag-extends"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">extends</span></code></a> tag.</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>Additionally, the variable may be an iterable of template names, in which case
the first that can be loaded will be used, as per
<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 class="first">コンテキスト: 変数 <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 class="first">テンプレート:</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 class="first"><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="first 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 class="last">ブロックは取り込まれる <em>前に</em> 評価されます。ブロックを含んでいる他のテンプレートを取り込む場合、そのブロックは『 <em>すでに評価され、出力された結果</em> 』としてのブロックであり、例えばテンプレートを継承したときのような、オーバーライド可能なブロックではありません。</p>
</div>
</div>
<div class="section" id="s-load">
<span id="s-std-templatetag-load"></span><span id="s-std:templatetag-load"></span><span id="load"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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> パッケージの``otherlibrary`` に登録されたすべてのタグとフィルタを読み込みます。:</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">Custom tag and filter libraries</span></a> を参照してください。</p>
</div>
<div class="section" id="s-lorem">
<span id="s-std-templatetag-lorem"></span><span id="s-std:templatetag-lorem"></span><span id="lorem"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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">
<colgroup>
<col width="15%" />
<col width="85%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Argument</th>
<th class="head">説明</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">count</span></code></td>
<td>生成する単語または段落の数を指定する、数値または変数 (デフォルトは 1 ) 。</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">method</span></code></td>
<td><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> )。</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">random</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">random</span></code> が与えられたとき、一般的な文章 ( &quot;Lorem ipsum dolor sit amet...&quot; ) を使わずにテキストを生成します。</td>
</tr>
</tbody>
</table>
<p>例:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">lorem</span> <span class="pre">%}</span></code> は、一般的な &quot;lorem ipsum&quot; を出力します。</li>
<li><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> タグで括って出力します。</li>
<li><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 個のランダムなラテン単語を出力します。</li>
</ul>
</div>
<div class="section" id="s-now">
<span id="s-std-templatetag-now"></span><span id="s-std:templatetag-now"></span><span id="now"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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="first 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="last 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>You can also use the syntax <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> to store the
output (as a string) inside a variable. This is useful if you want to use
<code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">now</span> <span class="pre">%}</span></code> inside a template tag like <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> for example:</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>
</div>
<div class="section" id="s-regroup">
<span id="s-std-templatetag-regroup"></span><span id="s-std:templatetag-regroup"></span><span id="regroup"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Mumbai&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;19,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;India&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Calcutta&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;15,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;India&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;New York&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;20,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;USA&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Chicago&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;7,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;USA&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Tokyo&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;33,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;Japan&#39;</span><span class="p">},</span>
<span class="p">]</span>
</pre></div>
</div>
<p>...そして、あなたは次のように、国別に並べた一覧を表示させたいものとしましょう:</p>
<ul class="simple">
<li>India<ul>
<li>Mumbai: 19,000,000</li>
<li>Calcutta: 15,000,000</li>
</ul>
</li>
<li>USA<ul>
<li>New York: 20,000,000</li>
<li>Chicago: 7,000,000</li>
</ul>
</li>
<li>Japan<ul>
<li>Tokyo: 33,000,000</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.11)"><code class="xref py py-func docutils literal notranslate"><span class="pre">namedtuple()</span></code></a> with two fields:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">grouper</span></code> -- グループ分けに使われた要素 ( ここでは &quot;India&quot; &quot;Japan&quot; といった文字列 )</li>
<li><code class="docutils literal notranslate"><span class="pre">list</span></code> -- このグループ内のすべての要素からなるリスト ( たとえば country='India' であるすべての都市のリスト)</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.11)"><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="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Mumbai&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;19,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;India&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;New York&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;20,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;USA&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Calcutta&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;15,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;India&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Chicago&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;7,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;USA&#39;</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Tokyo&#39;</span><span class="p">,</span> <span class="s1">&#39;population&#39;</span><span class="p">:</span> <span class="s1">&#39;33,000,000&#39;</span><span class="p">,</span> <span class="s1">&#39;country&#39;</span><span class="p">:</span> <span class="s1">&#39;Japan&#39;</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>India<ul>
<li>Mumbai: 19,000,000</li>
</ul>
</li>
<li>USA<ul>
<li>New York: 20,000,000</li>
</ul>
</li>
<li>India<ul>
<li>Calcutta: 15,000,000</li>
</ul>
</li>
<li>USA<ul>
<li>Chicago: 7,000,000</li>
</ul>
</li>
<li>Japan<ul>
<li>Tokyo: 33,000,000</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>
<div class="section" id="s-grouping-on-other-properties">
<span id="grouping-on-other-properties"></span><h4>その他の属性によるグループ化<a class="headerlink" href="#grouping-on-other-properties" title="このヘッドラインへのパーマリンク">¶</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>
</div>
</div>
<div class="section" id="s-resetcycle">
<span id="s-std-templatetag-resetcycle"></span><span id="s-std:templatetag-resetcycle"></span><span id="resetcycle"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Resets a previous <a class="reference internal" href="#cycle">cycle</a> so that it restarts from its first item at its next
encounter. Without arguments, <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">resetcycle</span> <span class="pre">%}</span></code> will reset the last
<code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">cycle</span> <span class="pre">%}</span></code> defined in the template.</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+django notranslate"><div class="highlight"><pre><span></span><span class="p">&lt;</span><span class="nt">h1</span><span class="p">&gt;</span>José Mourinho<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>Thibaut Courtois<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 Terry<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>Eden Hazard<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>Carlo Ancelotti<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>Manuel Neuer<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>Thomas Müller<span class="p">&lt;/</span><span class="nt">p</span><span class="p">&gt;</span>
</pre></div>
</div>
<p>Notice how the first block ends with <code class="docutils literal notranslate"><span class="pre">class=&quot;odd&quot;</span></code> and the new one starts
with <code class="docutils literal notranslate"><span class="pre">class=&quot;odd&quot;</span></code>. Without the <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">resetcycle</span> <span class="pre">%}</span></code> tag, the second block
would start with <code class="docutils literal notranslate"><span class="pre">class=&quot;even&quot;</span></code>.</p>
<p>You can also reset named cycle tags:</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>In this example, we have both the alternating odd/even rows and a &quot;major&quot; row
every fifth row. Only the five-row cycle is reset when a category changes.</p>
</div>
<div class="section" id="s-spaceless">
<span id="s-std-templatetag-spaceless"></span><span id="s-std:templatetag-spaceless"></span><span id="spaceless"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>とり除かれるのは、タグとタグの間の空白だけです -- タグとテキストの間のスペースは除かれません。次の例では、 Hello の周りの空白をはぎとりません:</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>
</div>
<div class="section" id="s-templatetag">
<span id="s-std-templatetag-templatetag"></span><span id="s-std:templatetag-templatetag"></span><span id="templatetag"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>テンプレートタグの構文で使われる文字を、通常の文字として出力します。</p>
<p>The template system has no concept of &quot;escaping&quot; individual characters.
However, you can use the <code class="docutils literal notranslate"><span class="pre">{%</span> <span class="pre">templatetag</span> <span class="pre">%}</span></code> tag to display one of the
template tag character combinations.</p>
<p>どの要素を出力するかは、引数で指定します:</p>
<table class="docutils">
<colgroup>
<col width="72%" />
<col width="28%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Argument</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">openblock</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{%</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">closeblock</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">%}</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">openvariable</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">closevariable</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">}}</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">openbrace</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">closebrace</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">}</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">opencomment</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{#</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">closecomment</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">#}</span></code></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>See also the <a class="reference internal" href="#std-templatetag-verbatim"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">verbatim</span></code></a> tag for another way of including these
characters.</p>
</div>
<div class="section" id="s-url">
<span id="s-std-templatetag-url"></span><span id="s-std:templatetag-url"></span><span id="url"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>これによって、テンプレート内での URL のハードコードで DRY 則を侵害することなく、リンクを出力することができます:</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>The first argument is a <a class="reference internal" href="../../topics/http/urls.html#naming-url-patterns"><span class="std std-ref">URL pattern name</span></a>. It can
be a quoted literal or any other context variable. Additional arguments are
optional and should be space-separated values that will be used as arguments in
the URL. The example above shows passing positional arguments. Alternatively
you may use keyword syntax:</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="s1">&#39;client/&lt;int:id&gt;/&#39;</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="s1">&#39;app-views-client&#39;</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="s1">&#39;clients/&#39;</span><span class="p">,</span> <span class="n">include</span><span class="p">(</span><span class="s1">&#39;project_name.app_name.urls&#39;</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>Note that if the URL you're reversing doesn't exist, you'll get an
<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> exception raised, which will cause your
site to display an error page.</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">namespaced URL resolution strategy</span></a> に従います。ここには現在のアプリケーションに関してコンテキストから得られる様々なヒントについて書かれています。</p>
<div class="admonition warning">
<p class="first admonition-title">警告</p>
<p class="last">Don't forget to put quotes around the URL pattern <code class="docutils literal notranslate"><span class="pre">name</span></code>, otherwise the
value will be interpreted as a context variable!</p>
</div>
</div>
<div class="section" id="s-verbatim">
<span id="s-std-templatetag-verbatim"></span><span id="s-std:templatetag-verbatim"></span><span id="verbatim"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-widthratio">
<span id="s-std-templatetag-widthratio"></span><span id="s-std:templatetag-widthratio"></span><span id="widthratio"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>In some cases you might want to capture the result of <code class="docutils literal notranslate"><span class="pre">widthratio</span></code> in a
variable. It can be useful, for instance, in a <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> like this:</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>
</div>
<div class="section" id="s-with">
<span id="s-std-templatetag-with"></span><span id="s-std:templatetag-with"></span><span id="with"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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="first admonition-title">注釈</p>
<p class="last">従来の冗長な書式もサポートされています:  <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>
</div>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</a></h2>
<div class="section" id="s-add">
<span id="s-std-templatefilter-add"></span><span id="s-std:templatefilter-add"></span><span id="add"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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="first admonition-title">警告</p>
<p class="last">整数に変換可能な文字列は、整数として「<strong>加算</strong>」されます。上の例のように「<strong>結合</strong>」されません。</p>
</div>
</div>
<div class="section" id="s-addslashes">
<span id="s-std-templatefilter-addslashes"></span><span id="s-std:templatefilter-addslashes"></span><span id="addslashes"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-capfirst">
<span id="s-std-templatefilter-capfirst"></span><span id="s-std:templatefilter-capfirst"></span><span id="capfirst"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">&quot;django&quot;</span></code>, the output will be <code class="docutils literal notranslate"><span class="pre">&quot;Django&quot;</span></code>.</p>
</div>
<div class="section" id="s-center">
<span id="s-std-templatefilter-center"></span><span id="s-std:templatefilter-center"></span><span id="center"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-cut">
<span id="s-std-templatefilter-cut"></span><span id="s-std:templatefilter-cut"></span><span id="cut"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-date">
<span id="s-std-templatefilter-date"></span><span id="s-std:templatefilter-date"></span><span id="date"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>引数に指定した書式で日付をフォーマットします。</p>
<p>Uses a similar format to PHP's <a class="reference external" href="https://www.php.net/manual/en/function.date.php">date()</a> function with some
differences.</p>
<div class="admonition note">
<p class="first admonition-title">注釈</p>
<p class="last">これらのフォーマット文字は、テンプレート以外では使えません。デザイナーが PHP のテンプレートから容易に変換できるように互換性を持たせています。</p>
</div>
<p id="date-and-time-formatting-specifiers">利用可能なフォーマット文字:</p>
<table class="docutils">
<colgroup>
<col width="12%" />
<col width="31%" />
<col width="57%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">フォーマット文字</th>
<th class="head">説明</th>
<th class="head">出力の例</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><strong>Day</strong></td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">d</span></code></td>
<td>日。 2 桁のゼロ詰め表示です。</td>
<td><code class="docutils literal notranslate"><span class="pre">'01'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'31'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">j</span></code></td>
<td>日。ゼロ埋め表示なし。</td>
<td><code class="docutils literal notranslate"><span class="pre">'1'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'31'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">D</span></code></td>
<td>曜日。 アルファベット 3 文字のテキスト形式です。</td>
<td><code class="docutils literal notranslate"><span class="pre">'Fri'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">l</span></code></td>
<td>曜日。長いテキスト形式です。</td>
<td><code class="docutils literal notranslate"><span class="pre">'Friday'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">S</span></code></td>
<td>日を表わす数字につける、英語特有の接尾辞。アルファベット 2 文字です。</td>
<td><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></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">w</span></code></td>
<td>曜日（数字 1 桁）。</td>
<td><code class="docutils literal notranslate"><span class="pre">'0'</span></code> (日曜) ～ <code class="docutils literal notranslate"><span class="pre">'6'</span></code> (土曜)</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">z</span></code></td>
<td>日（１年間における）</td>
<td><code class="docutils literal notranslate"><span class="pre">1</span></code> to <code class="docutils literal notranslate"><span class="pre">366</span></code></td>
</tr>
<tr class="row-even"><td><strong>Week</strong></td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">W</span></code></td>
<td>ISO-8601 による年間の週番号。 週は月曜日から始まります。</td>
<td><code class="docutils literal notranslate"><span class="pre">1</span></code>, <code class="docutils literal notranslate"><span class="pre">53</span></code></td>
</tr>
<tr class="row-even"><td><strong>Month</strong></td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">m</span></code></td>
<td>月。数字 2 桁で、ゼロ埋め表示します。</td>
<td><code class="docutils literal notranslate"><span class="pre">'01'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'12'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">n</span></code></td>
<td>月。ゼロ埋め表示しません。</td>
<td><code class="docutils literal notranslate"><span class="pre">'1'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'12'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">M</span></code></td>
<td>月。アルファベット 3 文字のテキスト形式です。</td>
<td><code class="docutils literal notranslate"><span class="pre">'Jan'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">b</span></code></td>
<td>月。アルファベット（小文字） 3 文字のテキスト形式です。</td>
<td><code class="docutils literal notranslate"><span class="pre">'jan'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">E</span></code></td>
<td>月。ロケールが定義する代替表現が使われ、通常は長いテキスト形式になります。</td>
<td><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> の、時制における変化形 )</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">F</span></code></td>
<td>月。長いテキスト形式で表したものです。</td>
<td><code class="docutils literal notranslate"><span class="pre">'January'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">N</span></code></td>
<td>AP スタイルブックによる月の省略表記。独自の拡張です。</td>
<td><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></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">t</span></code></td>
<td>その月の日数。</td>
<td><code class="docutils literal notranslate"><span class="pre">28</span></code> ～ <code class="docutils literal notranslate"><span class="pre">31</span></code></td>
</tr>
<tr class="row-odd"><td><strong>Year</strong></td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">y</span></code></td>
<td>Year, 2 digits with leading zeros.</td>
<td><code class="docutils literal notranslate"><span class="pre">'00'</span></code> to <code class="docutils literal notranslate"><span class="pre">'99'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">Y</span></code></td>
<td>Year, 4 digits with leading zeros.</td>
<td><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></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">L</span></code></td>
<td>うるう年かどうかを表すブール値です。</td>
<td><code class="docutils literal notranslate"><span class="pre">True</span></code> または <code class="docutils literal notranslate"><span class="pre">False</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">o</span></code></td>
<td>ISO-8601 の週番号付き記法による年。うるう週を用いた ISO-8601 週番号 (W) に対応します。一般的な年のフォーマットは Y を参照してください。</td>
<td><code class="docutils literal notranslate"><span class="pre">'1999'</span></code></td>
</tr>
<tr class="row-even"><td><strong>Time</strong></td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">g</span></code></td>
<td>時（ 12 時間表記）。ゼロ埋め表示なし。</td>
<td><code class="docutils literal notranslate"><span class="pre">'1'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'12'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">G</span></code></td>
<td>時（ 24 時間表記）。ゼロ埋め表示なし。</td>
<td><code class="docutils literal notranslate"><span class="pre">'0'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'23'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">h</span></code></td>
<td>時（ 12 時間表記）。</td>
<td><code class="docutils literal notranslate"><span class="pre">'01'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'12'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">H</span></code></td>
<td>時（ 24 時間表記）。</td>
<td><code class="docutils literal notranslate"><span class="pre">'00'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'23'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">i</span></code></td>
<td>分。</td>
<td><code class="docutils literal notranslate"><span class="pre">'00'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'59'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">s</span></code></td>
<td>秒。数字 2 桁で、ゼロ埋め表示です。</td>
<td><code class="docutils literal notranslate"><span class="pre">'00'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'59'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">u</span></code></td>
<td>マイクロ秒。</td>
<td><code class="docutils literal notranslate"><span class="pre">000000</span></code> ～ <code class="docutils literal notranslate"><span class="pre">999999</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">a</span></code></td>
<td><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 スタイルブックに従ってピリオドをつけます )</td>
<td><code class="docutils literal notranslate"><span class="pre">'a.m.'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">A</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">'AM'</span></code> または <code class="docutils literal notranslate"><span class="pre">'PM'</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">'AM'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">f</span></code></td>
<td>時と分（12 時間表記）。ただしゼロ分であるときは時間だけを表示します。これは独自の拡張です。</td>
<td><code class="docutils literal notranslate"><span class="pre">'1'</span></code> ～ <code class="docutils literal notranslate"><span class="pre">'12'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">P</span></code></td>
<td>時刻。12 時間表記による 時間:分 に続けて ‘a.m.’ または ’p.m.’ を表示します。ゼロ分である場合には分の表示が省略され、必要に応じて ‘midnight’ または ‘noon’ の表示になります。 独自の拡張です。</td>
<td><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></td>
</tr>
<tr class="row-even"><td><strong>Timezone</strong></td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">e</span></code></td>
<td>タイムゾーン名。どのフォーマットでも使えますが、 datetime によっては空の文字列を返す場合もあります。</td>
<td><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>　など</td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">I</span></code></td>
<td>Daylight saving time, whether it's in
effect or not.</td>
<td><code class="docutils literal notranslate"><span class="pre">'1'</span></code> または <code class="docutils literal notranslate"><span class="pre">'0'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">O</span></code></td>
<td>グリニッジ標準時からの時差。</td>
<td><code class="docutils literal notranslate"><span class="pre">'+0200'</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">T</span></code></td>
<td>計算機のタイムゾーン設定。</td>
<td><code class="docutils literal notranslate"><span class="pre">'EST'</span></code>, <code class="docutils literal notranslate"><span class="pre">'MDT'</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">Z</span></code></td>
<td>タイムゾーンオフセットを秒であらわしたもの。UTC よりも西側のタイムゾーン値は全て負の値になり、東側の値は常に正になります。</td>
<td><code class="docutils literal notranslate"><span class="pre">-43200</span></code> ～ <code class="docutils literal notranslate"><span class="pre">43200</span></code></td>
</tr>
<tr class="row-even"><td><strong>Date/Time</strong></td>
<td>&#160;</td>
<td>&#160;</td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">c</span></code></td>
<td>ISO 8601 format. (Note: unlike other
formatters, such as &quot;Z&quot;, &quot;O&quot; or &quot;r&quot;,
the &quot;c&quot; formatter will not add timezone
offset if value is a naive datetime
(see <a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.tzinfo" title="(in Python v3.11)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime.tzinfo</span></code></a>).</td>
<td><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></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">r</span></code></td>
<td><span class="target" id="index-0"></span><a class="rfc reference external" href="https://datatracker.ietf.org/doc/html/rfc5322.html#section-3.3"><strong>RFC 5322</strong></a>
formatted date.</td>
<td><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></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">U</span></code></td>
<td>Unix エポック時 ( UTC 協定世界時 1970年1月1日 00:00:00 ) からの秒数。</td>
<td>&#160;</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>上の例で、値が <a class="reference external" href="https://docs.python.org/3/library/datetime.html#datetime.datetime" title="(in Python v3.11)"><code class="xref py py-class docutils literal notranslate"><span class="pre">datetime</span></code></a> オブジェクトである場合 ( 例えば <code class="docutils literal notranslate"><span class="pre">datetime.datetime.now()</span></code> の結果など ) 、出力は <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-USE_L10N"><code class="xref std std-setting docutils literal notranslate"><span class="pre">USE_L10N</span></code></a> が <code class="docutils literal notranslate"><span class="pre">True</span></code> であるとして、例えば <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>When used without a format string, the <code class="docutils literal notranslate"><span class="pre">DATE_FORMAT</span></code> format specifier is
used. Assuming the same settings as the previous example:</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>outputs <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> (the <code class="docutils literal notranslate"><span class="pre">DATE_FORMAT</span></code> format specifier for the
<code class="docutils literal notranslate"><span class="pre">es</span></code> locale is <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>). Both &quot;d&quot; and &quot;e&quot; are
backslash-escaped, because otherwise each is a format string that displays the
day and the timezone name, respectively.</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>
</div>
<div class="section" id="s-default">
<span id="s-std-templatefilter-default"></span><span id="s-std:templatefilter-default"></span><span id="default"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-default-if-none">
<span id="s-std-templatefilter-default_if_none"></span><span id="s-std:templatefilter-default_if_none"></span><span id="default-if-none"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">None</span></code>, the output will be <code class="docutils literal notranslate"><span class="pre">nothing</span></code>.</p>
</div>
<div class="section" id="s-dictsort">
<span id="s-std-templatefilter-dictsort"></span><span id="s-std:templatefilter-dictsort"></span><span id="dictsort"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;zed&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</span><span class="p">:</span> <span class="mi">19</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;amy&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</span><span class="p">:</span> <span class="mi">22</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;joe&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</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="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;amy&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</span><span class="p">:</span> <span class="mi">22</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;joe&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</span><span class="p">:</span> <span class="mi">31</span><span class="p">},</span>
    <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;zed&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</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="s1">&#39;title&#39;</span><span class="p">:</span> <span class="s1">&#39;1984&#39;</span><span class="p">,</span> <span class="s1">&#39;author&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;George&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</span><span class="p">:</span> <span class="mi">45</span><span class="p">}},</span>
    <span class="p">{</span><span class="s1">&#39;title&#39;</span><span class="p">:</span> <span class="s1">&#39;Timequake&#39;</span><span class="p">,</span> <span class="s1">&#39;author&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Kurt&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</span><span class="p">:</span> <span class="mi">75</span><span class="p">}},</span>
    <span class="p">{</span><span class="s1">&#39;title&#39;</span><span class="p">:</span> <span class="s1">&#39;Alice&#39;</span><span class="p">,</span> <span class="s1">&#39;author&#39;</span><span class="p">:</span> <span class="p">{</span><span class="s1">&#39;name&#39;</span><span class="p">:</span> <span class="s1">&#39;Lewis&#39;</span><span class="p">,</span> <span class="s1">&#39;age&#39;</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> can also order a list of lists (or any other object implementing
<code class="docutils literal notranslate"><span class="pre">__getitem__()</span></code>) by elements at specified index. For example:</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="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;42&#39;</span><span class="p">),</span>
    <span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">),</span>
    <span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;foo&#39;</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="s1">&#39;a&#39;</span><span class="p">,</span> <span class="s1">&#39;42&#39;</span><span class="p">),</span>
    <span class="p">(</span><span class="s1">&#39;b&#39;</span><span class="p">,</span> <span class="s1">&#39;foo&#39;</span><span class="p">),</span>
    <span class="p">(</span><span class="s1">&#39;c&#39;</span><span class="p">,</span> <span class="s1">&#39;string&#39;</span><span class="p">),</span>
<span class="p">]</span>
</pre></div>
</div>
<p>You must pass the index as an integer rather than a string. The following
produce empty output:</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>Ordering by elements at specified index is not supported on dictionaries.</p>
<div class="versionchanged">
<span class="title">Changed in Django 2.2.26:</span> <p>In older versions, ordering elements at specified index was supported on
dictionaries.</p>
</div>
</div>
<div class="section" id="s-dictsortreversed">
<span id="s-std-templatefilter-dictsortreversed"></span><span id="s-std:templatefilter-dictsortreversed"></span><span id="dictsortreversed"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>辞書のリストを入力に取り、引数に指定したキーでリストを逆順にソートして返します。これは上のフィルタと全く同じ処理をしますが、返す値は逆順です。</p>
</div>
<div class="section" id="s-divisibleby">
<span id="s-std-templatefilter-divisibleby"></span><span id="s-std:templatefilter-divisibleby"></span><span id="divisibleby"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-escape">
<span id="s-std-templatefilter-escape"></span><span id="s-std:templatefilter-escape"></span><span id="escape"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>入力文字中にある HTML の特殊文字をエスケープします。具体的には、以下のような置換を行います:</p>
<ul class="simple">
<li><code class="docutils literal notranslate"><span class="pre">&lt;</span></code> を <code class="docutils literal notranslate"><span class="pre">&amp;lt;</span></code> に変換</li>
<li><code class="docutils literal notranslate"><span class="pre">&gt;</span></code> を <code class="docutils literal notranslate"><span class="pre">&amp;gt;</span></code> に変換</li>
<li><code class="docutils literal notranslate"><span class="pre">'</span></code> (single quote) is converted to <code class="docutils literal notranslate"><span class="pre">&amp;#x27;</span></code></li>
<li><code class="docutils literal notranslate"><span class="pre">&quot;</span></code> ( ダブルクォート ) を <code class="docutils literal notranslate"><span class="pre">&amp;quot;</span></code> に変換</li>
<li><code class="docutils literal notranslate"><span class="pre">&amp;</span></code> を <code class="docutils literal notranslate"><span class="pre">&amp;amp;</span></code> に変換</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>
<div class="section" id="s-escapejs">
<span id="s-std-templatefilter-escapejs"></span><span id="s-std:templatefilter-escapejs"></span><span id="escapejs"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Escapes characters for use in JavaScript strings. This does <em>not</em> make the
string safe for use in HTML or JavaScript template literals, but does protect
you from syntax errors when using templates to generate JavaScript/JSON.</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">escapejs</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;testing\r\njavascript</span> <span class="pre">'string\&quot;</span> <span class="pre">&lt;b&gt;escaping&lt;/b&gt;&quot;</span></code>,
the output will be <code class="docutils literal notranslate"><span class="pre">&quot;testing\\u000D\\u000Ajavascript</span> <span class="pre">\\u0027string\\u0022</span> <span class="pre">\\u003Cb\\u003Eescaping\\u003C/b\\u003E&quot;</span></code>.</p>
</div>
<div class="section" id="s-filesizeformat">
<span id="s-std-templatefilter-filesizeformat"></span><span id="s-std:templatefilter-filesizeformat"></span><span id="filesizeformat"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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="first admonition-title">ファイルサイズと国際単位系（SI）</p>
<p class="last"><code class="docutils literal notranslate"><span class="pre">filesizeformat</span></code> は、厳密には国際単位系（SI）に準拠していません。国際単位系ではバイトサイズを 1024 の累乗で計算する場合 (上の例がそうですが) 、  KiB、MiB、GiB などの単位を使うよう推奨しています。しかし Django ではより一般的な表記に対応して、従来の単位名（ KB、 MB、GB など）を使用しています。</p>
</div>
</div>
<div class="section" id="s-first">
<span id="s-std-templatefilter-first"></span><span id="s-std:templatefilter-first"></span><span id="first"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-floatformat">
<span id="s-std-templatefilter-floatformat"></span><span id="s-std:templatefilter-floatformat"></span><span id="floatformat"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>引数なしで使った場合、浮動小数点数を小数点以下１桁に丸めます。ただし小数部分がない時には整数部分だけを表示します。例を示します:</p>
<table class="docutils">
<colgroup>
<col width="26%" />
<col width="57%" />
<col width="17%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head"><code class="docutils literal notranslate"><span class="pre">value</span></code></th>
<th class="head">テンプレート</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.2</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.26000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.3</span></code></td>
</tr>
</tbody>
</table>
<p>引数に１以上の整数を指定した場合、 <code class="docutils literal notranslate"><span class="pre">floatformat</span></code> は小数部分を指定された桁数で丸めます。以下に例を示します:</p>
<table class="docutils">
<colgroup>
<col width="24%" />
<col width="57%" />
<col width="20%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head"><code class="docutils literal notranslate"><span class="pre">value</span></code></th>
<th class="head">テンプレート</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:3</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.232</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:3</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.000</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.26000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:3</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.260</span></code></td>
</tr>
</tbody>
</table>
<p>特に便利な使い方として、引数に 0 (ゼロ) を指定した場合、入力値を一番近い整数に丸めます。</p>
<table class="docutils">
<colgroup>
<col width="22%" />
<col width="59%" />
<col width="19%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head"><code class="docutils literal notranslate"><span class="pre">value</span></code></th>
<th class="head">テンプレート</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;0&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;0&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">39.56000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;0&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">40</span></code></td>
</tr>
</tbody>
</table>
<p>引数に負の数を指定した場合、小数部分を指定された桁数（指定された数の絶対値）で丸めます。ただし小数部分がない時には整数部分だけを表示します。例を示します:</p>
<table class="docutils">
<colgroup>
<col width="22%" />
<col width="59%" />
<col width="19%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head"><code class="docutils literal notranslate"><span class="pre">value</span></code></th>
<th class="head">テンプレート</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;-3&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.232</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">34.00000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;-3&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.26000</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;-3&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.260</span></code></td>
</tr>
</tbody>
</table>
<p>If the argument passed to <code class="docutils literal notranslate"><span class="pre">floatformat</span></code> has the <code class="docutils literal notranslate"><span class="pre">g</span></code> suffix, it will force
grouping by the <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> for the active locale. For
example, when the active locale is <code class="docutils literal notranslate"><span class="pre">en</span></code> (English):</p>
<table class="docutils">
<colgroup>
<col width="21%" />
<col width="57%" />
<col width="22%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head"><code class="docutils literal notranslate"><span class="pre">value</span></code></th>
<th class="head">テンプレート</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34232.34</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;2g&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34,232.34</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">34232.06</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;g&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34,232.1</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34232.00</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;-3g&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34,232</span></code></td>
</tr>
</tbody>
</table>
<p>Output is always localized (independently of the <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> tag) unless the argument passed to <code class="docutils literal notranslate"><span class="pre">floatformat</span></code> has the <code class="docutils literal notranslate"><span class="pre">u</span></code>
suffix, which will force disabling localization. For example, when the active
locale is <code class="docutils literal notranslate"><span class="pre">pl</span></code> (Polish):</p>
<table class="docutils">
<colgroup>
<col width="21%" />
<col width="57%" />
<col width="22%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head"><code class="docutils literal notranslate"><span class="pre">value</span></code></th>
<th class="head">テンプレート</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;3&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34,232</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">34.23234</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">{{</span> <span class="pre">value|floatformat:&quot;3u&quot;</span> <span class="pre">}}</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">34.232</span></code></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>
<div class="versionchanged">
<span class="title">Changed in Django 4.0:</span> <p><code class="docutils literal notranslate"><span class="pre">floatformat</span></code> template filter no longer depends on the
<a class="reference internal" href="../settings.html#std-setting-USE_L10N"><code class="xref std std-setting docutils literal notranslate"><span class="pre">USE_L10N</span></code></a> setting and always returns localized output.</p>
<p>The <code class="docutils literal notranslate"><span class="pre">u</span></code> suffix to force disabling localization was added.</p>
</div>
</div>
<div class="section" id="s-force-escape">
<span id="s-std-templatefilter-force_escape"></span><span id="s-std:templatefilter-force_escape"></span><span id="force-escape"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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> フィルタから生成された HTML 要素 <code class="docutils literal notranslate"><span class="pre">&lt;p&gt;</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">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>
</div>
<div class="section" id="s-get-digit">
<span id="s-std-templatefilter-get_digit"></span><span id="s-std:templatefilter-get_digit"></span><span id="get-digit"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-iriencode">
<span id="s-std-templatefilter-iriencode"></span><span id="s-std:templatefilter-iriencode"></span><span id="iriencode"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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=1&amp;me=2&quot;</span></code> のとき、出力は <code class="docutils literal notranslate"><span class="pre">&quot;?test=1&amp;amp;me=2&quot;</span></code> になります。</p>
</div>
<div class="section" id="s-join">
<span id="s-std-templatefilter-join"></span><span id="s-std:templatefilter-join"></span><span id="join"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-json-script">
<span id="s-std-templatefilter-json_script"></span><span id="s-std:templatefilter-json_script"></span><span id="json-script"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Safely outputs a Python object as JSON, wrapped in a <code class="docutils literal notranslate"><span class="pre">&lt;script&gt;</span></code> tag, ready
for use with JavaScript.</p>
<p><strong>Argument:</strong> The optional HTML &quot;id&quot; of the <code class="docutils literal notranslate"><span class="pre">&lt;script&gt;</span></code> tag.</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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is the dictionary <code class="docutils literal notranslate"><span class="pre">{'hello':</span> <span class="pre">'world'}</span></code>, the output will be:</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>The resulting data can be accessed in JavaScript like this:</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><span class="w"></span>
</pre></div>
</div>
<p>XSS attacks are mitigated by escaping the characters &quot;&lt;&quot;, &quot;&gt;&quot; and &quot;&amp;&quot;. For
example if <code class="docutils literal notranslate"><span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">{'hello':</span> <span class="pre">'world&lt;/script&gt;&amp;amp;'}</span></code>, the output is:</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>This is compatible with a strict Content Security Policy that prohibits in-page
script execution. It also maintains a clean separation between passive data and
executable code.</p>
<div class="versionchanged">
<span class="title">Changed in Django 4.1:</span> <p>In older versions, the HTML &quot;id&quot; was a required argument.</p>
</div>
</div>
<div class="section" id="s-last">
<span id="s-std-templatefilter-last"></span><span id="s-std:templatefilter-last"></span><span id="last"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-length">
<span id="s-std-templatefilter-length"></span><span id="s-std:templatefilter-length"></span><span id="length"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>The filter returns <code class="docutils literal notranslate"><span class="pre">0</span></code> for an undefined variable.</p>
</div>
<div class="section" id="s-length-is">
<span id="s-std-templatefilter-length_is"></span><span id="s-std:templatefilter-length_is"></span><span id="length-is"></span><span id="std-templatefilter-length_is"></span><span id="std:templatefilter-length_is"></span><h3><code class="docutils literal notranslate"><span class="pre">length_is</span></code><a class="headerlink" href="#length-is" title="このヘッドラインへのパーマリンク">¶</a></h3>
<p>入力値の長さと引数が等しければ <code class="docutils literal notranslate"><span class="pre">True</span></code> を返し、そうでなければ <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">length_is</span><span class="s2">:&quot;4&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> <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">True</span></code> です。</p>
</div>
<div class="section" id="s-linebreaks">
<span id="s-std-templatefilter-linebreaks"></span><span id="s-std:templatefilter-linebreaks"></span><span id="linebreaks"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Replaces line breaks in plain text with appropriate HTML; a single
newline becomes an HTML line break (<code class="docutils literal notranslate"><span class="pre">&lt;br&gt;</span></code>) and a new line
followed by a blank line becomes a paragraph break (<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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">Joel\nis</span> <span class="pre">a</span> <span class="pre">slug</span></code>, the output will be <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>
</div>
<div class="section" id="s-linebreaksbr">
<span id="s-std-templatefilter-linebreaksbr"></span><span id="s-std:templatefilter-linebreaksbr"></span><span id="linebreaksbr"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Converts all newlines in a piece of plain text to HTML line breaks
(<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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is <code class="docutils literal notranslate"><span class="pre">Joel\nis</span> <span class="pre">a</span> <span class="pre">slug</span></code>, the output will be <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>
</div>
<div class="section" id="s-linenumbers">
<span id="s-std-templatefilter-linenumbers"></span><span id="s-std:templatefilter-linenumbers"></span><span id="linenumbers"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-ljust">
<span id="s-std-templatefilter-ljust"></span><span id="s-std:templatefilter-ljust"></span><span id="ljust"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-lower">
<span id="s-std-templatefilter-lower"></span><span id="s-std:templatefilter-lower"></span><span id="lower"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-make-list">
<span id="s-std-templatefilter-make_list"></span><span id="s-std:templatefilter-make_list"></span><span id="make-list"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Returns the value turned into a list. For a string, it's a list of characters.
For an integer, the argument is cast to a string before creating a list.</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>
</div>
<div class="section" id="s-phone2numeric">
<span id="s-std-templatefilter-phone2numeric"></span><span id="s-std:templatefilter-phone2numeric"></span><span id="phone2numeric"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-pluralize">
<span id="s-std-templatefilter-pluralize"></span><span id="s-std:templatefilter-pluralize"></span><span id="pluralize"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Returns a plural suffix if the value is not <code class="docutils literal notranslate"><span class="pre">1</span></code>, <code class="docutils literal notranslate"><span class="pre">'1'</span></code>, or an object of
length 1. By default, this suffix is <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="first admonition-title">注釈</p>
<p class="last">Use <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> to pluralize translated strings.</p>
</div>
</div>
<div class="section" id="s-pprint">
<span id="s-std-templatefilter-pprint"></span><span id="s-std:templatefilter-pprint"></span><span id="pprint"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p><a class="reference external" href="https://docs.python.org/3/library/pprint.html#pprint.pprint" title="(in Python v3.11)"><code class="xref py py-func docutils literal notranslate"><span class="pre">pprint.pprint()</span></code></a> のラッパーです -– 実のところ、これはデバッグ用です。</p>
</div>
<div class="section" id="s-random">
<span id="s-std-templatefilter-random"></span><span id="s-std:templatefilter-random"></span><span id="random"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-rjust">
<span id="s-std-templatefilter-rjust"></span><span id="s-std:templatefilter-rjust"></span><span id="rjust"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-safe">
<span id="s-std-templatefilter-safe"></span><span id="s-std:templatefilter-safe"></span><span id="safe"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>文字列に対して、さらなる HTML エスケープが必要でないことをマークするのに使います。 autoescaping がオフの場合、このフィルタは何もしません。</p>
<div class="admonition note">
<p class="first admonition-title">注釈</p>
<p>フィルタを連鎖させる場合、 <code class="docutils literal notranslate"><span class="pre">safe</span></code> の後に適用されるフィルタはその内容を再び安全でない状態にしてしまうことが可能です。例えば以下のコードは、変数をそのまま、エスケープされない状態で出力します:</p>
<div class="last 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>
</div>
<div class="section" id="s-safeseq">
<span id="s-std-templatefilter-safeseq"></span><span id="s-std:templatefilter-safeseq"></span><span id="safeseq"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-slice">
<span id="s-std-templatefilter-slice"></span><span id="s-std:templatefilter-slice"></span><span id="slice"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>リストに対するスライスを返します。</p>
<p>Uses the same syntax as Python's list slicing. See
<a class="reference external" href="https://diveinto.org/python3/native-datatypes.html#slicinglists">https://diveinto.org/python3/native-datatypes.html#slicinglists</a> for an
introduction.</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>
</div>
<div class="section" id="s-slugify">
<span id="s-std-templatefilter-slugify"></span><span id="s-std:templatefilter-slugify"></span><span id="slugify"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-stringformat">
<span id="s-std-templatefilter-stringformat"></span><span id="s-std:templatefilter-stringformat"></span><span id="stringformat"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>引数 (表示形式を指定する文字列) に応じて、変数の表示形式を変更します。指定方法には、<a class="reference external" href="https://docs.python.org/3/library/stdtypes.html#old-string-formatting" title="(in Python v3.11)"><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>
</div>
<div class="section" id="s-striptags">
<span id="s-std-templatefilter-striptags"></span><span id="s-std:templatefilter-striptags"></span><span id="striptags"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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="first admonition-title">安全性の保証はありません</p>
<p class="last">注意してください。 <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> フィルタを適用しては**いけません**。 より堅牢な方法を求めるならば、 Python の <code class="docutils literal notranslate"><span class="pre">bleach</span></code> ライブラリ、特に <a class="reference external" href="https://bleach.readthedocs.io/en/latest/clean.html">clean</a> メソッドを使用できます。</p>
</div>
</div>
<div class="section" id="s-time">
<span id="s-std-templatefilter-time"></span><span id="s-std:templatefilter-time"></span><span id="time"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>Note that you can backslash-escape a format string if you want to use the
&quot;raw&quot; value. In this example, both &quot;h&quot; and &quot;m&quot; are backslash-escaped, because
otherwise each is a format string that displays the hour and the month,
respectively:</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>This would display as &quot;01h 23m&quot;.</p>
<p>その他の例:</p>
<p><a class="reference internal" href="../settings.html#std-setting-USE_L10N"><code class="xref std std-setting docutils literal notranslate"><span class="pre">USE_L10N</span></code></a> が <code class="docutils literal notranslate"><span class="pre">True</span></code> で、<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>the output will be the string <code class="docutils literal notranslate"><span class="pre">&quot;01:23&quot;</span></code> (The <code class="docutils literal notranslate"><span class="pre">&quot;TIME_FORMAT&quot;</span></code> format
specifier for the <code class="docutils literal notranslate"><span class="pre">de</span></code> locale as shipped with Django is <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.11)"><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 <a class="reference internal" href="../../topics/i18n/timezones.html#naive-vs-aware-datetimes"><span class="std std-ref">time-zone-aware</span></a> <code class="docutils literal notranslate"><span class="pre">datetime</span></code> instance) を渡した場合、 <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">format specifiers</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>When used without a format string, the <code class="docutils literal notranslate"><span class="pre">TIME_FORMAT</span></code> format specifier is
used:</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>is the same as:</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>
</div>
<div class="section" id="s-timesince">
<span id="s-std-templatefilter-timesince"></span><span id="s-std:templatefilter-timesince"></span><span id="timesince"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>日付を経過時間の形式にフォーマットします (例えば、 “4 days, 6 hours”) 。</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>
</div>
<div class="section" id="s-timeuntil">
<span id="s-std-templatefilter-timeuntil"></span><span id="s-std:templatefilter-timeuntil"></span><span id="timeuntil"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-title">
<span id="s-std-templatefilter-title"></span><span id="s-std:templatefilter-title"></span><span id="title"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-truncatechars">
<span id="s-std-templatefilter-truncatechars"></span><span id="s-std:templatefilter-truncatechars"></span><span id="truncatechars"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Truncates a string if it is longer than the specified number of characters.
Truncated strings will end with a translatable ellipsis character (&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>
</div>
<div class="section" id="s-truncatechars-html">
<span id="s-std-templatefilter-truncatechars_html"></span><span id="s-std:templatefilter-truncatechars_html"></span><span id="truncatechars-html"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is <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>, the output will be
<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>
<div class="section" id="s-truncatewords">
<span id="s-std-templatefilter-truncatewords"></span><span id="s-std:templatefilter-truncatewords"></span><span id="truncatewords"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is <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>, the output will be <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>
</div>
<div class="section" id="s-truncatewords-html">
<span id="s-std-templatefilter-truncatewords_html"></span><span id="s-std:templatefilter-truncatewords_html"></span><span id="truncatewords-html"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>If <code class="docutils literal notranslate"><span class="pre">value</span></code> is <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>, the output will be
<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>
<div class="section" id="s-unordered-list">
<span id="s-std-templatefilter-unordered_list"></span><span id="s-std:templatefilter-unordered_list"></span><span id="unordered-list"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>Recursively takes a self-nested list and returns an HTML unordered list --
WITHOUT opening and closing <code class="docutils literal notranslate"><span class="pre">&lt;ul&gt;</span></code> tags.</p>
<p>リストは適切な形式になっているものとみなします。例えば、<code class="docutils literal notranslate"><span class="pre">var</span></code> の内容が ['States', ['Kansas', ['Lawrence', 'Topeka'], 'Illinois']] であれば、 {{ var|unordered_list }} は以下のようになります:</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>
</div>
<div class="section" id="s-upper">
<span id="s-std-templatefilter-upper"></span><span id="s-std:templatefilter-upper"></span><span id="upper"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-urlencode">
<span id="s-std-templatefilter-urlencode"></span><span id="s-std:templatefilter-urlencode"></span><span id="urlencode"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-urlize">
<span id="s-std-templatefilter-urlize"></span><span id="s-std:templatefilter-urlize"></span><span id="urlize"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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://goo.gl/aia1t</span></code> は変換されます。しかし <code class="docutils literal notranslate"><span class="pre">goo.gl/aia1t</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>Links can have trailing punctuation (periods, commas, close-parens) and leading
punctuation (opening parens), and <code class="docutils literal notranslate"><span class="pre">urlize</span></code> will still do the right thing.</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><code class="docutils literal notranslate"><span class="pre">value</span></code> が <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> であるとき、出力は <code class="docutils literal notranslate"><span class="pre">&quot;Check</span> <span class="pre">out</span> <span class="pre">&lt;a</span> <span class="pre">href=&quot;http://www.djangoproject.com&quot;</span> <span class="pre">rel=&quot;nofollow&quot;&gt;www.djangoproject.com&lt;/a&gt;&quot;</span></code> となります。</p>
<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="first admonition-title">注釈</p>
<p class="last">If <code class="docutils literal notranslate"><span class="pre">urlize</span></code> is applied to text that already contains HTML markup, or to
email addresses that contain single quotes (<code class="docutils literal notranslate"><span class="pre">'</span></code>), things won't work as
expected. Apply this filter only to plain text.</p>
</div>
</div>
<div class="section" id="s-urlizetrunc">
<span id="s-std-templatefilter-urlizetrunc"></span><span id="s-std:templatefilter-urlizetrunc"></span><span id="urlizetrunc"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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
<code class="docutils literal notranslate"><span class="pre">'Check</span> <span class="pre">out</span> <span class="pre">&lt;a</span> <span class="pre">href=&quot;http://www.djangoproject.com&quot;</span>
<span class="pre">rel=&quot;nofollow&quot;&gt;www.djangoproj…&lt;/a&gt;'</span></code>.</p>
<p><a class="reference internal" href="#urlize">urlize</a> と同じく、このフィルタはプレーンテキストに対してだけ使ってください。</p>
</div>
<div class="section" id="s-wordcount">
<span id="s-std-templatefilter-wordcount"></span><span id="s-std:templatefilter-wordcount"></span><span id="wordcount"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-wordwrap">
<span id="s-std-templatefilter-wordwrap"></span><span id="s-std:templatefilter-wordwrap"></span><span id="wordwrap"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-yesno">
<span id="s-std-templatefilter-yesno"></span><span id="s-std:templatefilter-yesno"></span><span id="yesno"></span><span id="std-templatefilter-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="このヘッドラインへのパーマリンク">¶</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">
<colgroup>
<col width="13%" />
<col width="29%" />
<col width="57%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">値</th>
<th class="head">Argument</th>
<th class="head">出力</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">True</span></code></td>
<td>&#160;</td>
<td><code class="docutils literal notranslate"><span class="pre">yes</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">True</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no,maybe&quot;</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">yeah</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">False</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no,maybe&quot;</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">no</span></code></td>
</tr>
<tr class="row-odd"><td><code class="docutils literal notranslate"><span class="pre">None</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no,maybe&quot;</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">maybe</span></code></td>
</tr>
<tr class="row-even"><td><code class="docutils literal notranslate"><span class="pre">None</span></code></td>
<td><code class="docutils literal notranslate"><span class="pre">&quot;yeah,no&quot;</span></code></td>
<td><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> の値が使われます)</td>
</tr>
</tbody>
</table>
</div>
</div>
<div class="section" id="s-internationalization-tags-and-filters">
<span id="internationalization-tags-and-filters"></span><h2>国際化タグとフィルタ<a class="headerlink" href="#internationalization-tags-and-filters" title="このヘッドラインへのパーマリンク">¶</a></h2>
<p>Django はテンプレートの <a class="reference internal" href="../../topics/i18n/index.html"><span class="doc">internationalization</span></a> をそれぞれの角度から制御するタグやフィルタを提供し、翻訳、書式設定、およびタイムゾーン変換のきめ細かい制御を可能にしています。</p>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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> でライブラリをロードすることだけですが、ローカライズをデフォルトで有効にするため <a class="reference internal" href="../settings.html#std-setting-USE_L10N"><code class="xref std std-setting docutils literal notranslate"><span class="pre">USE_L10N</span></code></a> を <code class="docutils literal notranslate"><span class="pre">True</span></code> に設定する場合もしばしばあるでしょう。</p>
<p><a class="reference internal" href="../../topics/i18n/formatting.html#topic-l10n-templates"><span class="std std-ref">テンプレート内でローカル化をコントロールする</span></a> も参照してください。</p>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
</div>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</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>
<div class="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="このヘッドラインへのパーマリンク">¶</a></h3>
<p>データを「ヒトにやさしい」表現にする上で便利な Django テンプレートフィルタのセットです。くわしくは <a class="reference internal" href="../contrib/humanize.html"><span class="doc">django.contrib.humanize</span></a> を参照してください。</p>
</div>
<div class="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="このヘッドラインへのパーマリンク">¶</a></h3>
<div class="section" id="s-std-templatetag-static">
<span id="s-std:templatetag-static"></span><span id="s-id7"></span><span id="std-templatetag-static"></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="このヘッドラインへのパーマリンク">¶</a></h4>
<p>To link to static files that are saved in <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 ships
with a <a class="reference internal" href="#std-templatetag-static"><code class="xref std std-ttag docutils literal notranslate"><span class="pre">static</span></code></a> template tag. If the <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>
app is installed, the tag will serve files using <code class="docutils literal notranslate"><span class="pre">url()</span></code> method of the
storage specified by <a class="reference internal" href="../settings.html#std-setting-STATICFILES_STORAGE"><code class="xref std std-setting docutils literal notranslate"><span class="pre">STATICFILES_STORAGE</span></code></a>. For example:</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="p">&gt;</span>
</pre></div>
</div>
<div class="admonition-using-jinja2-templates admonition">
<p class="first admonition-title">Jinja2 テンプレートを使う？</p>
<p class="last">See <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> for information on
using the <code class="docutils literal notranslate"><span class="pre">static</span></code> tag with Jinja2.</p>
</div>
</div>
<div class="section" id="s-get-static-prefix">
<span id="s-std-templatetag-get_static_prefix"></span><span id="s-std:templatetag-get_static_prefix"></span><span id="get-static-prefix"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>
</div>
<div class="section" id="s-get-media-prefix">
<span id="s-std-templatetag-get_media_prefix"></span><span id="s-std:templatetag-get_media_prefix"></span><span id="get-media-prefix"></span><span id="std-templatetag-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="このヘッドラインへのパーマリンク">¶</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>
</div>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      
        
          <div class="yui-b" id="sidebar">
            
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <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> operator</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="#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="#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="#length-is"><code class="docutils literal notranslate"><span class="pre">length_is</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="前の章へ">The Django Template Language</a></p>
  </div>
  <div>
    <h4>次のトピックへ</h4>
    <p class="topless"><a href="api.html"
                          title="次の章へ">The Django template language: for Python programmers</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>
<div 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>
</div>
<script>$('#searchbox').show(0);</script>
        </div>
      </div>
              <h3>Last update:</h3>
              <p class="topless">3月 08, 2023</p>
          </div>
        
      
    </div>

    <div id="ft">
      <div class="nav">
    &laquo; <a href="language.html" title="The Django Template Language">previous</a>
     |
    <a href="../index.html" title="API Reference" accesskey="U">up</a>
   |
    <a href="api.html" title="The Django template language: for Python programmers">next</a> &raquo;</div>
    </div>
  </div>

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