Skip to main content
 首页 » 编程设计

python之使用 Django 模板过滤器做数学

2025年05月04日25unruledboy

在我的数据库中,我有一个存储价格信息的整数字段,例如“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}} 

此外,如果我是你,我会将货币值作为小数字段存储在你的数据库中,以避免这样做或处理舍入错误的麻烦。