24

django テンプレートで乗算演算を実現したい。たとえば、価格 = 10.50 数量 = 3 という値があります。

このリンクの助けを借りて

http://slacy.com/blog/2010/07/using-djangos-widthratio-template-tag-for-multiplication-division/

私はそれを達成するために以下のコードを試しました、

{% widthratio quantity 1 price %}

しかし、31しか返されません。しかし、フロートで答えが必要です(31.5)

そして、手動で作成したタグを使用せずに実現したい

どうすれば達成できますか?前もって感謝します...

4

4 に答える 4

75

組み込みのwidthratioテンプレート タグを使用できます。

  • 乱用{% widthratio a 1 b %}
  • 乱用{% widthratio a b 1 %}

注: 結果は、返される前に整数に丸められます。

@see https://docs.djangoproject.com/en/dev/ref/templates/builtins/

于 2014-06-12T08:50:45.887 に答える
27

2 つのアプローチがあります。

  • ビュー内の値を計算してテンプレートに渡す (私の意見では推奨)
  • テンプレート フィルターの使用

フィルターのように、いつでも独自のフィルターを作成して、独自のカスタム フィルターを作成できます。add multiply

from django import template

register = template.Library()

@register.filter
def multiply(value, arg):
    return value * arg

次に、テンプレートで、そのようなものが機能するはずです。

{{ quantity | multiply:price }}

これはテストされておらず、ビュー内でデータを計算し、テンプレートのみを使用してレンダリングする方が適切であるため、これを行ったことはありません。

于 2013-08-21T11:17:53.947 に答える