プログラミング

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

プログラミング
この記事は約2分で読めます。
スポンサーリンク

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

スポンサーリンク
スポンサーリンク
KoEをフォローする
CodeLab

コメント

タイトルとURLをコピーしました