Django中DecimalField显示逗号改圆点的问题求助
解决方案
你的问题是因为开启了国际化(USE_I18N = True),法语(fr-fr)本地化规则会把十进制数的小数点替换成逗号。以下几种方法可以改成显示圆点:
方法一:关闭单个字段的本地化渲染
在模板中给Decimal字段加上localize:False过滤器,直接输出原始的圆点分隔格式:
{% for c in object_list %} {{c.nomVille}} {{c.adresse}} {{c.cp}} {{c.latitude|localize:False}} {{c.longitude|localize:False}} {% endfor %}
这个方法最直接,只影响指定字段,不会改动其他本地化设置。
方法二:自定义法语本地化的数字格式
如果想保留其他法语本地化特性,只修改小数点符号:
- 在项目根目录创建如下目录结构:
locale/ fr/ LC_NUMERIC/ - 在
LC_NUMERIC目录下创建名为LC_NUMERIC的文件,内容写:decimal_point "." thousands_sep "" - 运行Django的编译命令生效:
python manage.py compilemessages
方法三:全局自定义法语格式
通过配置自定义格式模块来修改法语下的十进制分隔符:
- 在项目中创建
formats/fr目录,里面新建format.py文件,内容:DECIMAL_SEPARATOR = '.' THOUSAND_SEPARATOR = '' - 在
settings.py中添加配置:
注意把FORMAT_MODULE_PATH = 'your_project_name.formats'your_project_name换成你的实际项目名称。
内容的提问来源于stack exchange,提问作者Zembla
相关产品推荐
相关产品推荐

