Django埋め込みタグリファレンスより
よく使いそうなものをピックアップ
now
指定したフォーマット文字列にしたがって現在の日時を表示します。
フォーマット文字列中で普通の文字列を使いたければ、バックスラッシュでエスケー プできます。下の例では、"f" が時刻を表すフォーマット指定子として解釈されな いようにエスケープしています。 "o" はフォーマット指定子ではないのでエスケー プしていません:
It is {% now "jS F Y H:i" %}It is the {% now "jS o\f F" %}
| フォーマット文字 | 説明 | 出力例 |
| a | 'a.m.' または 'p.m.' (Associated Press に合わせるため、'.' が入っている点 が PHP と違います)。 | 'a.m.' |
| A | 'AM' または 'PM' です。 | 'AM' |
| b | 3 文字の小文字で表した月名です。 | 'jan' |
| B | 実装されていません。 | |
| d | 月の中の日。 2 桁のゼロ詰めです。 | '01' から '31' |
| D | 週の中の日。 3 文字のテキスト形式です。 | 'Fri' |
| f | 12 時間表記の時と分。ただし、ゼロ分の 場合には表示しません。独自の拡張です。 | '1', '1:30' |
| F | 月名を長いテキスト形式で表したものです。 | 'January' |
| g | 12 時間表記の時。ゼロ詰めはしません。 | '1' から '12' |
| G | 24 時間表記の時。ゼロ詰めはしません。 | '0' から '23' |
| h | 12 時間表記の時です。 | '01' から '12' |
| H | 24 時間表記の時です。 | '00' から '23' |
| i | 分です。 | '00' から '59' |
| I | 実装されていません。 | |
| j | 月の中の日。ゼロ詰めしません。 | '1' から '31' |
| l | 週の中の曜日。長いテキスト形式です。 | 'Friday' |
| L | 閏年かどうかを表すブール値です。 | True または False |
| m | 月です。2 桁でゼロ詰めしたものです。 | '01' から '12' |
| M | 月です。3 文字のテキスト形式です。 | 'Jan' |
| n | 月です。ゼロ詰めしません。 | '1' から '12' |
| N | Associated Press スタイルの月の省略表記 です。独自の拡張です。 | 'Jan.', 'Feb.', 'March', 'May' |
| O | グリニッジ標準時からの時差です。 | '+0200' |
| P | 時刻です。12 時間表記の時、分、 そして 'a.m.'/'p.m.' です。分がゼロの 場合には省略され、必要に応じて 'midnight' または 'noon' になります。 独自の拡張です。 | '1 a.m.', '1:30 p.m.', 'midnight', 'noon', '12:30 p.m.' |
| r | RFC 2822に従ったフォーマットの日時です。 | 'Thu, 21 Dec 2000 16:01:07 +0200' |
| s | 秒です。 2 桁のゼロ詰めです。 | '00' から '59' |
| S | 月の中の日につける 2 文字の序数接尾辞 です。 | 'st', 'nd', 'rd' or 'th' |
| t | 月の日数です。 | 28 から 31 |
| T | 計算機のタイムゾーン設定です。 | 'EST', 'MDT' |
| U | 実装されていません。 | |
| w | 週の中の曜日です。ゼロ詰めしません。 | '0' (Sunday) to '6' (Saturday) |
| W | ISO-8601 に従った年の中の週番号です。 週は月曜日から始まります。 | 1, 53 |
| y | 2 桁の年です。 | '99' |
| Y | 4 桁の年です。 | '1999' |
| z | 年の中の日 | 0 から 365 |
| Z | タイムゾーンオフセットを秒であらわした ものです。UTC よりも西側のタイムゾーン値 は全て負の値になり、東側の値は常に正に なります。 | -43200 から 43200 |
include
テンプレートをロードして、現在のコンテキストを使ってレンダリングします。あ るテンプレートに別のテンプレートを取り込む ("include") 方法の一つです。
テンプレート名はハードコードされた (引用符で囲った) 文字列でもよく、引用符 は一重でも二重でもかまいません。
以下の例では、
"foo/bar.html" という名前のテンプレートを取り込みます:
{% include "foo/bar.html" %}次の例では、 変数
template_name に入っている名前のテンプレートを取り込 みます:
{% include template_name %}取り込まれたテンプレートは、取り込んだ側で使われているコンテキストの下でレ ンダリングされます。下の例では
"Hello, John" を出力します:
コンテキスト: 変数 person を "john" に設定
テンプレート:
{% include "name_snippet.html" %}
name_snippet.html テンプレート:
Hello, {{ person }}
{% ssi %} も参照してください。
cycle
Django 1.0 で変更されました: タグを処理するごとに、指定した文字列や変数を循環して返します。
ループの中では、ループごとに指定した文字列や変数を循環して返します:
{% for o in some_list %}
<tr class="{% cycle 'row1' 'row2' rowvar %}">
...
</tr>
{% endfor %}ループの外側では、最初に一意な名前を与えておき、以後はその名前を使います。 例えば:
<tr class="{% cycle 'row1' 'row2' rowvar as rowcolors %}">...</tr>
<tr class="{% cycle rowcolors %}">...</tr>
<tr class="{% cycle rowcolors %}">...</tr>任意の個数の値を使えます。値はスペースで区切ります。値をクオート (
') または二重クオート (
") で囲むと、文字列リテラルとして扱います。 クオートされていない値はコンテキスト変数への参照とみなされます。
値をカンマで区切った形式もつかえます:
{% cycle row1,row2,row3 %}ただし、この構文では、値は全てリテラルテキストとして扱われます。 カンマを使った構文は以前のバージョンとの互換性のために残されています。 新たなプロジェクトでは使わないようにしてください。
for
アレイの各要素に渡ってループします。例えば、アスリート (athlete) のリストを
athlete_list で渡して表示するには:
<ul>
{% for athlete in athlete_list %}
<li>{{ athlete.name }}</li>
{% endfor %}
</ul>{% for obj in list reversed %} のようにすると、リストに対して逆順のルー プを実行できます。
Django 1.0 で新たに登場しました.
リストのリストにわたってループ処理を行う場合、各サブリストをアンパックして、 個別に名前を割り当てられます。例えば、座標 (x, y) のリストが入った
points というコンテキスト変数があり、各座標を出力したい場合には以下のよ うにします:
{% for x, y in points %}
座標 {{ x }},{{ y }} が登録されています。
{% endfor %}この方法は、辞書の各要素にアクセスしたい場合にも便利です。例えば、コンテキ スト変数
data に辞書が入っている場合。以下のようにすれば辞書内のキーと 値を表示できます:
{% for key, value in data.items %}
{{ key }}: {{ value }}
{% endfor %}for ループは、ループの各回ごとに使える変数を設定します:
| 変数名 | 説明 |
| forloop.counter | 現在のループ回数番号 (1 から数えたもの) |
| forloop.counter0 | 現在のループ回数番号 (0 から数えたもの) |
| forloop.revcounter | 末尾から数えたループ回数番号 (1 から数えたもの) |
| forloop.revcounter0 | 末尾から数えたループ回数番号 (0 から数えたもの) |
| forloop.first | 最初のループであれば True になります |
| forloop.last | 最後のループであれば True になります |
| forloop.parentloop | 入れ子のループの場合、一つ上のループを表します | |
|
|
|
|
| |