[Django]テンプレート内で引き算(減算)する方法

Django Logo プログラミング

Django のテンプレート内で引き算する方法を紹介していきたいと思います。
方法はいくつかあるので、状況に合った方法を使用してもらえればと思います。

方法1 : Django の標準の組み込みタグを利用する

下記のように、 Django の標準の組み込みタグを利用することで、テンプレート内で引き算することができます。

{{ value|add:"-2" }}

Django の標準の組み込みタグである add を利用します。
上記では value から「 -2 」を加算することで引き算することができます。
ただ、この方法ではデータベースなどから取得してきた値同士の引き算する際に問題が発生します。
例えば、商品の在庫数から商品の販売を引き算したい場合、以下のように書きたくなるんですが、

{{ stock|add:-sales }}

これだとテンプレートでエラーになります。
そこで、データベースなどから取り出した値同士を引き算したい場合は、次の方法で引き算を行います。

方法2 : mathfilters タグを利用する

mathfilters タグをインストールすることで引き算をテンプレート内で行うことができます。

django-mathfilters
A set of simple math filters for Django

利用手順は下記の通りです。

pip install

下記コマンドを実行し、 mathfilters タグをインストールします。

$ pip install django-mathfilters

settings.py ファイル編集

INSTALLED_APPSmathfilters を追加します。

INSTALLED_APPS = [
    ...
    'mathfilters',
    ...
]

テンプレートファイルで mathfilters タグを呼び出す

テンプレートファイルで下記のように mathfilters タグをロードします。

{% load mathfilters %}

引き算を行う

下記のように記述すると引き算を行うことができます。

{{ stock|sub:sale }}

最後に

mathfilters を利用することで、マイナスの値を加算するというやり方ではなく、単純に引き算を行うことができるようになります。また、mathfilters は「引き算」の他にも、掛け算割り算余りの計算などもできるので、是非有効活用してもらえればと思います。

コメント

モバイルバージョンを終了
タイトルとURLをコピーしました