将 Floatformat 添加到 Django 自定义标记
Adding a Floatformat to Django Custom Tag
我正在使用 Django 1.8.3 和 Python 3.4.3
我有一个自定义标签,它获取两个对象的值,将一个对象分成另一个对象并呈现总数。我这样做是因为被划分的两个对象是许多字段的总和,所以我需要做最后的总计计算。
我需要帮助的是,一旦将两个值相互分开,浮点数最多呈现小数点后 15 位数字,我尝试使用 |floatformat
,但它似乎没有在标签上工作。我找了又找答案,但我似乎找不到可能就在我面前的东西:)
一切正常,我只想将最终值格式化为小数点后两位。下面是我的代码。
simple_tag.py
from django import template
register = template.Library()
@register.simple_tag()
def average(num1, num2):
return float(num1 / num2)
traffic.html(我的模板)
{% if traffic_list %}
<tr>
<th>Monday</th>
<td>{{ total_sales.Monday }}</td>
<td>{{ total_campaigns.Monday }}</td>
<td>{{ total_ifs_signups.Monday }}</td>
<td>{{ total_traffic.Monday }}</td>
<td>{% average total_traffic.Monday total_sales.Monday %}</td>
</tr>
...
上述标签的结果值
30.345407503234153
我想要渲染
30.36
再次感谢您的帮助。
计算平均值时,您必须:
@register.simple_tag()
def average(num1, num2):
a = float(num1 / num2)
# if you want you can round it too
# a = round(float(num1/num2))
return format(a, '.2f')
标签定义中的浮点数可以四舍五入:
@register.simple_tag()
def average(num1, num2):
return round(float(num1 / num2), 2)
或者您可以像这样使用 floatformat
过滤器:
{% average total_traffic.Monday total_sales.Monday as result %}
<td>{{result|floatformat:2}}</td>
我正在使用 Django 1.8.3 和 Python 3.4.3
我有一个自定义标签,它获取两个对象的值,将一个对象分成另一个对象并呈现总数。我这样做是因为被划分的两个对象是许多字段的总和,所以我需要做最后的总计计算。
我需要帮助的是,一旦将两个值相互分开,浮点数最多呈现小数点后 15 位数字,我尝试使用 |floatformat
,但它似乎没有在标签上工作。我找了又找答案,但我似乎找不到可能就在我面前的东西:)
一切正常,我只想将最终值格式化为小数点后两位。下面是我的代码。
simple_tag.py
from django import template
register = template.Library()
@register.simple_tag()
def average(num1, num2):
return float(num1 / num2)
traffic.html(我的模板)
{% if traffic_list %}
<tr>
<th>Monday</th>
<td>{{ total_sales.Monday }}</td>
<td>{{ total_campaigns.Monday }}</td>
<td>{{ total_ifs_signups.Monday }}</td>
<td>{{ total_traffic.Monday }}</td>
<td>{% average total_traffic.Monday total_sales.Monday %}</td>
</tr>
...
上述标签的结果值
30.345407503234153
我想要渲染
30.36
再次感谢您的帮助。
计算平均值时,您必须:
@register.simple_tag()
def average(num1, num2):
a = float(num1 / num2)
# if you want you can round it too
# a = round(float(num1/num2))
return format(a, '.2f')
标签定义中的浮点数可以四舍五入:
@register.simple_tag()
def average(num1, num2):
return round(float(num1 / num2), 2)
或者您可以像这样使用 floatformat
过滤器:
{% average total_traffic.Monday total_sales.Monday as result %}
<td>{{result|floatformat:2}}</td>