組込みフィルタを一通り使ってみる(1)
ちまちま処理を書いた後に、そのまんまな組込みフィルタがあることを知ってがっくり、なんてことを繰り返していたので、本気でドキュメントを読もうと組込みフィルタの一覧をプリントアウトしたら、思っていたのよりも数が多くて、戸惑い気味です。
さらっと目を通すと、「こんな便利なものがあるなら先に言ってよ」なものから「これ、何に使うの?」ってものまであるようなので、とりあえず一通り試すことにしました。
add
1 add 2 eq :{{ 1|add:2 }}
1 add 2 eq :3
addslashes
JavaScriptへ渡す時に使う用らしい
後回し
capfirst
test capfirst :{{ "test"|capfirst }}
test capfirst :Test
center
{{ "test"|center:20 }}
HTML上ではスペースは意味ないので表示に変化はなし。
ソースを見ると、前後にスペースが入っているのがわかる。
Webアプリケーション構築目的では多分使わない機能。
cut
test cut t :{{ "test"|cut:"t" }} <br> test cut e :{{ "test"|cut:"e" }}
test cut t :es
test cut e :tst
date
dt : {{ dt }} <br> dt date "y年n月j日 G時i分" : {{ dt|date:"y年n月j日 G時i分" }}
dt : 1987-06-05 04:32:10
dt date "y年n月j日 G時i分" : 87年6月5日 4時32分
default
defined = u"定義済" datanone = None
defined : {{ defined|default:"未定義" }} <br> datanone : {{ datanone|default:"未定義" }} <br> undefined : {{ undefined|default:"未定義" }}
defined : 定義済
datanone : 未定義
undefined : 未定義
default_if_none
defined = u"定義済" datanone = None
defined : {{ defined|default_if_none:"不明" }} <br> datanone : {{ datanone|default_if_none:"不明" }} <br> undefined : {{ undefined|default_if_none:"不明" }}
defined : 定義済
datanone : 不明
undefined :
discsort
list = ( { 'name' = 'aaa', 'type' = 8, 'age' = 25 }, { 'name' = 'bbb', 'type' = 2, 'age' = 28 }, { 'name' = 'ccc', 'type' = 7, 'age' = 18 }, )
list discsort name :{{ list|dictsort:"name" }} <br> list discsort type :{{ list|dictsort:"type" }} <br> list discsort age :{{ list|dictsort:"age" }}
list discsort name :[{'age': 25, 'type': 8, 'name': 'aaa'}, {'age': 28, 'type': 2, 'name': 'bbb'}, {'age': 18, 'type': 7, 'name': 'ccc'}]
list discsort type :[{'age': 28, 'type': 2, 'name': 'bbb'}, {'age': 18, 'type': 7, 'name': 'ccc'}, {'age': 25, 'type': 8, 'name': 'aaa'}]
list discsort age :[{'age': 18, 'type': 7, 'name': 'ccc'}, {'age': 25, 'type': 8, 'name': 'aaa'}, {'age': 28, 'type': 2, 'name': 'bbb'}]
{% for line in list|dictsort:"age" %} <p> {{ line.age }} : {{ line.name }} </p> {% endfor %}
18 : ccc
25 : aaa
28 : bbb
dictsortreversed
{% for line in list|dictsortreversed:"age" %} <p> {{ line.age }} : {{ line.name }} </p> {% endfor %}
28 : bbb
25 : aaa
18 : ccc
divisibleby
5 / 3 :{{ 5|divisibleby:3 }} <br> 5 / 5 :{{ 5|divisibleby:5 }}
5 / 3 :False
5 / 5 :True
5 / 3 : {% if 5|divisibleby:3 %} OK {% else %} NG {% endif %}
5 / 3 : NG
filesizeformat
{{ 648|filesizeformat }} <br> {{ 30192|filesizeformat }} <br> {{ 5901248|filesizeformat }} <br> {{ 1395901248|filesizeformat }}
648 bytes
29.5 KB
5.6 MB
1.3 GB
first
list = ( 'a', 'b', 'c', )
{{ list|first }}
a
floatformat
12 floatformat default :{{ 12|floatformat }} <br> 12.345 floatformat default :{{ 12.345|floatformat }} <br> 12.35 floatformat default :{{ 12.35|floatformat }} <br> 12.351 floatformat default :{{ 12.351|floatformat }}
12 floatformat default :12
12.345 floatformat default :12.3
12.35 floatformat default :12.3
12.351 floatformat default :12.4
12 floatformat 0 :{{ 12|floatformat:0 }} <br> 12 floatformat 1 :{{ 12|floatformat:1 }} <br> 12 floatformat 5 :{{ 12|floatformat:5 }} <br> 12.345 floatformat 0 :{{ 12.345|floatformat:0 }} <br> 12.345 floatformat 1 :{{ 12.345|floatformat:1 }} <br> 12.345 floatformat 2 :{{ 12.345|floatformat:2 }} <br> 12.345 floatformat 5 :{{ 12.345|floatformat:5 }}
12 floatformat 0 :12
12 floatformat 1 :12.0
12 floatformat 5 :12.00000
12.345 floatformat 0 :12
12.345 floatformat 1 :12.3
12.345 floatformat 2 :12.35
12.345 floatformat 5 :12.34500
12 floatformat -0 :{{ 12|floatformat:"-0" }} <br> 12 floatformat -1 :{{ 12|floatformat:"-1" }} <br> 12 floatformat -5 :{{ 12|floatformat:"-5" }} <br> 12.345 floatformat -0 :{{ 12.345|floatformat:"-0" }} <br> 12.345 floatformat -1 :{{ 12.345|floatformat:"-1" }} <br> 12.345 floatformat -2 :{{ 12.345|floatformat:"-2" }} <br> 12.345 floatformat -5 :{{ 12.345|floatformat:"-5" }}
12 floatformat -0 :12
12 floatformat -1 :12
12 floatformat -5 :12
12.345 floatformat -0 :12
12.345 floatformat -1 :12.3
12.345 floatformat -2 :12.35
12.345 floatformat -5 :12.34500
引数のデフォルトは"-1"