Django – DTL – フィルターとスペースとエラー

概要

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

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です