2012-03-30 10 views
46

{{ myval.add:5 }}{{ myval|add:value }}、さらに{{ myval|add:-5 }}と書くことができます。djangoテンプレートの変数の減算

しかし、{{ myval|add:-value }}のように値* -1を追加するために入力する必要があるものが見つかりません。これは悲しいことに、うまくいきません。

答えて

51

組み込みのDjangoのテンプレートタグ/フィルタは、すべての包括的なではありませんが、それは、独自のカスタムテンプレートタグを記述するために、超簡単です:https://docs.djangoproject.com/en/1.4/howto/custom-template-tags/

あなたはかなり簡単に独自のsubtractテンプレートタグを作ることができる:

@register.filter 
def subtract(value, arg): 
    return value - arg 
+3

に、このようなタスクのためのテンプレートタグの必要性をジャンゴ-mathfiltersをインストールしていません。シメオンの答えを見てください。 – rom

+0

シメオンの答えは、変数に定義された量で減算することに関連するので、質問に答えません。 – Teekin

82

あなたは二重引用符を使用する必要があります。

{{ myval|add:"-5" }} 

これはmyvalから5を減算します。

+12

私は変数から値を減算する必要があります。 – aemdy

+4

テンプレートではなくビューで値を負にすることはできますか? –

+4

ありがとう、私は今度は減算フィルタを構築しようとしていましたが、これはさらに簡単ですhaha – JREAM

8

https://pypi.python.org/pypi/django-mathfilters

インストール:$ピップは、テンプレート内

{% load mathfilters %} 

<ul> 
    <li>8 + 3 = {{ 8|add:3 }}</li> 

    <li>13 - 17 = {{ 13|sub:17 }}</li> 

    {% with answer=42 %} 
    <li>42 * 0.5 = {{ answer|mul:0.5 }}</li> 
    {% endwith %} 

    {% with numerator=12 denominator=3 %} 
    <li>12/3 = {{ numerator|div:denominator }}</li> 
    {% endwith %} 

    <li>|-13| = {{ -13|abs }}</li> 
</ul> 
+3

これは私の意見では、Djangoのメインディストリビューションに含まれるべきです。 – Teekin