Webアプリケーション プログラミング系 Django python WEB開発 非エンジニア向け

【Django】テンプレートファイル上で数値を計算する方法

こんにちは、TAKです。
今回は、Djangoのhtmlファイル上で変数同士を計算する方法について紹介していきたいと思います。

テンプレートファイル上で数値を計算する方法と言ってもいいかもしれませんが、イメージとしては「views.pyファイルからhtmlファイルに渡された数値(変数)」について四則演算する方法になります。

【こんな人に読んで欲しい記事です】

● Djangoのテンプレートファイル上で数値同士を計算出来るようになりたい方

● Djangoの「mathfilters」について知っておきたい方

言葉だけだとイメージしにくいと思うので、サンプルイメージをお見せします。

今回は、3つのデータが登録済である前提で、それらの四則演算をどうやって実現するかを見ていきます。

今回記事の目的|テンプレートファイル上で四則演算を実現する

上図のように、登録済のProjectA~Cの金額を四則演算をすることが今回の目的となります。

なお、以前紹介した「カンマ表示」に関するコードも出てくるので、良ければ以下参考にしてみてください。

Django「mathfilters」の使い方

テンプレートファイル上で計算するために、「mathfilters」という方法を使っていきます。

主な手順をまとめると以下のようになります。
① django-mathfiltersのインストール
② 設定ファイル(settings.py)への追加作業
③ 計算したいhtmlファイル上で「mathfilters」を読み込む
④ 計算したいhtmlファイルの計算部分に「var1 | add : var2」を適用(加算の場合)

順を追ってみていきましょう。

①はpipなどでインストールしておいてください。
→ 「pip install django-mathfilters」

まず最初に、設定ファイル(settings.py)ファイルに以下赤枠部分を追記します。

設定ファイル(settings.py)への追加

続いて、計算したいhtmlファイルの上部に「load mathfilters」を追加します。

htmlファイル上部への追記

その上で、四則演算に応じた処理を追加していきます。
ポイントをまとめると以下のようになります。

【加算の場合】 「add」を使用 (例)var1とvar2を加算したい場合 → var1 | add : var2

【減算の場合】 「sub」を使用 (例)var1とvar2を減算したい場合 → var1 | sub : var2

【乗算の場合】 「mul」を使用 (例)var1とvar2を乗算したい場合 → var1 | mul : var2

【除算の場合】 「div」を使用 (例)var1とvar2を除算したい場合 → var1 | div : var2

この点を踏まえて、加減乗除の順に該当コードを見ていきます。
なお、コード内の「Project xxx」には該当プロジェクトの金額を格納しています。

mathfiltersを適用|加算する場合
mathfiltersを適用|減算する場合
mathfiltersを適用|乗算する場合
mathfiltersを適用|除算する場合

上記コードを反映した結果が、以下となります。

設定後のhtmlファイル|計算結果が適切に表示されていることを確認

赤枠部分が加減乗除に従って、適切に計算されていることがわかりますね。
この方法も知っておくと何かと便利なので、是非使えるようにしてみてください。

公式ドキュメントを確認したい方はコチラからどうぞ。
>> Django-mathfiltersのドキュメントを確認

さいごに

今回は、Djangoの「mathfilters」という方法を紹介してきました。

テンプレートファイル上で計算させる方法がなくて困っていた時期があったのですが、この方法で簡単に解決することが出来ました。同じように悩まれていた方の参考になれば嬉しいです。

ブログ内ではdjangoの勉強方法なども紹介しているので、コチラも参考にしてみてください。

では今回はこのへんで。