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 | 入れ子のループの場合、一つ上のループを表します | |
|
|
|
|
| |