如何在django中只覆盖十进制分隔符,同时保持本地化的完整性?

如何在django中只覆盖十进制分隔符,同时保持本地化的完整性?,django,localization,Django,Localization,Django的本地化很好。方便获得翻译的日期和月份以及正确的日期格式 我的问题是,在荷兰语言环境中,逗号用于分隔小数(因此:12,45而不是12.45)。理论上,这是正确的选择。然而,实际上,几乎每个人都使用点作为十进制分隔符。至少我们的客户是这样 所以:我确实想要django的本地化,但我只想调整十进制分隔符。问题:本地化优先于在我的设置文件中简单地设置DECIMAL_SEPARATOR='. 我可以添加一个格式化目录并使用它,但我不喜欢将这样的目录复制/粘贴到我所有的django项目中 那么

Django的本地化很好。方便获得翻译的日期和月份以及正确的日期格式

我的问题是,在荷兰语言环境中,逗号用于分隔小数(因此:
12,45
而不是
12.45
)。理论上,这是正确的选择。然而,实际上,几乎每个人都使用点作为十进制分隔符。至少我们的客户是这样

所以:我确实想要django的本地化,但我只想调整
十进制分隔符
。问题:本地化优先于在我的设置文件中简单地设置
DECIMAL_SEPARATOR='.

我可以添加一个格式化目录并使用它,但我不喜欢将这样的目录复制/粘贴到我所有的django项目中

那么:我是不是遗漏了什么?有更好的办法吗

(少量添加:最安全的方法是接受点或逗号,因为几乎没有人手动键入千个分隔符。)

示例:xxx=123456

如果需要逗号:

def commaxxx(self):
    return f"{self.xxx:,}"
如果你想要圆点:

def dotxxx(self):
    comma = f"{self.xxx:,}"
    dot= comma.replace(',', '.')
    return dot

您是否只需要用于模板?如果是,那么您可以直接在其中控制本地化:否,我也需要在django admin中使用它。编写一个简单的中间件层(听起来很大,但它不是:一个类和一个方法就足够了),在区域设置中间件完成后覆盖十进制分隔符。请参阅:语言环境中间件只设置要使用的语言/语言环境,它本身不进行任何翻译/格式化。