在我的数据库中,我有一个存储价格信息的整数字段,例如“10399”、“84700”。 显示时应为“$103.99”和“$847.00”。
我需要显示 int*0.01。
我想知道是否有办法使用 Django 模板过滤器来做到这一点?喜欢:
{{ item.price|int_to_float_and_times_0.01 }}
另一个问题,其实我选择整数是因为我认为它比在数据库中使用 float 更有效率。是真的吗?
请您参考如下方法:
您可以创建自己的模板过滤器,它基本上可以通过将输入除以 100 来满足您的需求。例如:
在 my_app/templatetags/currency_helper.py 中:
from django import template
register = template.Library()
@register.filter
def to_currency(value):
return float(value) / 100.0
然后在你的模板中:
{% load currency_helper %}
etc...
{{item.price|to_currency}}
此外,如果我是你,我会将货币值作为小数字段存储在你的数据库中,以避免这样做或处理舍入错误的麻烦。
