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
は「引き算」の他にも、掛け算や割り算、余りの計算などもできるので、是非有効活用してもらえればと思います。
コメント