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_APPS
にmathfilters
を追加します。
INSTALLED_APPS = [
...
'mathfilters',
...
]
テンプレートファイルでmathfiltersタグを呼び出す
テンプレートファイルで下記のようにmathfiltersタグをロードします。
{% load mathfilters %}
引き算を行う
下記のように記述すると引き算を行うことができます。
{{ stock|sub:sale }}
最後に
mathfilters
を利用することで、マイナスの値を加算するというやり方ではなく、単純に引き算を行うことができるようになります。また、mathfilters
は「引き算」の他にも、掛け算や割り算、余りの計算などもできるので、是非有効活用してもらえればと思います。
コメント