You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django模板:如何将Decimal字段值格式化为两种美元货币格式

Django模板中格式化DecimalField字段的两种展示方式

假设你的模型实例在模板中以{{ object }}指代,对应字段为order_amount,以下是两种格式的实现方法:

1. 无小数点格式($12,346)

需要先加载Django的humanize模板标签库,结合floatformat和intcomma过滤器实现:

{% load humanize %}
${{ object.order_amount|floatformat:"0"|intcomma }}
  • floatformat:"0"会将数值四舍五入为整数(12345.67会转为12346)
  • intcomma负责添加千位分隔符,最后手动拼接美元符号$

如果要处理字段为null的情况,可添加默认值兜底:

{% load humanize %}
${{ object.order_amount|default:0|floatformat:"0"|intcomma }}

2. 两位小数格式($12,345.67)

同样借助humanize库的intcomma过滤器,搭配floatformat固定小数位数:

{% load humanize %}
${{ object.order_amount|floatformat:"2"|intcomma }}
  • floatformat:"2"强制保留两位小数,intcomma添加千位分隔符

如果项目开启了本地化(settings.py中USE_L10N = True),也可以用localize过滤器自动格式化:

{% load l10n %}
${{ object.order_amount|localize }}

该方式会自动处理千位分隔符和小数位数,但需确保本地化配置适配美元格式。

处理null值时同样可加默认值:

{% load humanize %}
${{ object.order_amount|default:0|floatformat:"2"|intcomma }}

内容的提问来源于stack exchange,提问作者J.W

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 06:25:05