概要
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 |