Django模版加法:
{{ value|add:10}} value=5,則返回15
{{value|add:-10}} value=5,則返回-5,這個比較好理解,減法就是加一個負數
{% widthratio 5 1 100 %} 上面的代碼表示:5/1 *100,返回500,widthratio須要三個參數,它會使用 參數1/參數2*參數3,因此要進行乘法的話,就將參數2=1便可
Django作除法,這裏用到widthratio這個方法
<td>{% widthratio foo.product_amount 100 1 %}</td>#}
若是想將widthratio函數處理後的值當作變量,能夠以下方法
{% widthratio this_value max_value max_width as width %}
{% blocktrans %}The width is: {{ width }}{% endblocktrans %}
<td>{{ foo.product_amount |floatformat:5 }}</td>
register = template.Library()
利用 add 這個filter ,能夠作更瘋狂的事:
計算 A^2: {% widthratio A 1 A %}
計算 (A+B)^2: {% widthratio A|add:B 1 A|add:B %}
計算 (A+B) * (C+D): {% widthratio A|add:B 1 C|add:D %}
首先定義方法在templatehelper.py文件中
@register.filter
def div(value, div):
'''
分轉化爲元,保留兩位小數
:param value:
:param div:
:return:
'''
return round((value / div), 2)
而後在模板中能夠按照以下使用,固然前提是{% load templatehelper %}:
<td>{{ foo.product_amount |div:100 }}</td>
- 嘗試過一個笨辦法,可是不生效,並且就算生效,也會出現忽略掉小數點後面得值的狀況,因此不建議:
<td>{% widthratio foo.product_amount 100 1 as width %}{% blocktrans %}{{ width }}{% endblocktrans %}</td>#}