テンプレートでfilterを活用しよう
テンプレートとは?
DjangoでHTMLを出力するための仕組み
contextから渡された値を利用することができる
TODO
変数
{{ foo }} のようにすることで出力することができる
タグ
{% if bar %}
{{ baz }}
のようにすることでロジックを書ける
テンプレートで凄いなと思ったところ
フィルターを利用することで責務を分割できる
DjangoはMVCフレームワーク
それぞれの役割がある
画面出力をするロジックにおいて、計算処理などを行なっていると見通しが悪くなる
責任もあやふやになってしまう
フィルターとは?
画面出力時に値をhogehogeする仕組み
例えば
日付
Viewで取得した値
{{ book.release_date }}
これだと2023年10月9日 のような形式で出力される
この表示以外にしたい場合、例えばViewで変換するメソッドを準備することも考えられる
{{ book.release_date|date:"Y/m/d" }}
のようにすることで、フィルターを利用して
YYYY/mm/dd 形式で出力されるようになる
他にも
filesizeformat
人間が読みやすいファイルサイズの表現に変換してくれる
length
len() のように数を取得することができる
こうすることで
Viewはロジックに
Templateは値を出力することに集中
それぞれ責務を分けることができる