djangoの勉強を進めていく中で、3項演算子をテンプレートの中で使いたい場面があるかもしれません。
djangoのテンプレートはpythonと関係がありませんので、どうすれば3項演算子を使うことができるのか疑問に思うこともあるかもしれません。
そこで今回は、3項演算子の使い方を分かりやすく解説していきます。
3項演算子を使うには、yesnoフィルターを使います
3項演算子を使うためには、yesnoフィルターを使います。
具体的なコードをみながら、理解を深めていきましょう。
yesnoフィルターの具体的なコード
早速yesnoフィルターのコードをみていきます。
こちらのコードをご覧ください。
コード{{ value | yesno: "Trueの場合, Falseの場合, Noneの場合" }}
一つずつみていきましょう。
まずはvalue | yesnoです。
これを理解するためには、まず「|」について理解する必要があります。
「|」はdjangoのテンプレートではフィルターを呼ばれています。
フィルターは、あるデータを受け取ったら、そのデータをフィルターを通して違うものに変えてくれます。
例えば、日付 | 曜日 というコードがあったとしましょう。
これは、日付のデータ(xx年x月x日)というデータを曜日(x曜日)に変えます。
このように、何か前のデータをフィルターを通して違うデータに変えるという動きをするのです。
次に、" "で囲まれた部分です。
これは、valueがTrue, False, Noneの場合で返す値を決めています。
例えば、valueがTrueであれば「Trueの場合」がhtmlファイル上に表示され、valueがFalseであれば「Falseの場合」がhtmlファイル上に表示され、valueがNoneであれば「None」の場合がhtmlファイルに表示されます。
3項演算子では、Trueの場合とFalseの場合しか判定できなかったのですが、djangoではさらにNoneの場合の動きも操作することができます。
なお、True、False、Noneの違いについて理解したい方は、True・False・Noneという記事を参考にしてください。