概要
DjangoのDTLにおけるフィルターの一般形式は以下のようになっている。
変数|フィルター:引数|フィルター:引数|・・・
フィルターは変数展開{{ .... }}
でもタグ{% .... %}
でも使えるが、それぞれで'|'
や':'
の前後にスペースを入れた時の挙動が異なるので整理する。
結論すると、DTLでフィルターを使う場合は'|'
と':'
の前後にはスペースを入れないと決めておくのが紛れがなくてよい。
変数展開の場合
'|'
の前後のスペースは許されるが、':'
の前後にスペースを入れるとTemplateSyntaxErrorになる。
{{ var|add:2 }} |
Ok |
{{ var |add:2 }} |
Ok |
{{ var| add:2 }} |
Ok |
{{ var|add :2 }} |
Error |
{{ var|add: 2 }} |
Error |
タグの場合
'|'
の前後も':'
の前後もスペースを入れるとTemplateSyntaxErrorになる。
{% if var|divisibleby:2 %} |
Ok |
{% if var |divisibleby:2 %} |
Error |
{% if var| divisibleby:2 %} |
Error |
{% if var|divisibleby :2 %} |
Error |
{% if var|divisibleby: 2 %} |
Error |