如何在 django 模板中格式化十进制,在输入标签中



我知道我可以使用floatformat,但只有当我传递一个数字作为参数时才有效..如果我尝试使用{{myform.myfield }}不起作用。

有任何插件可以使用 {{ myform.myfield }} 格式化十进制字段?我知道,我可以编写所有输入标签,但需要一些时间,我正在寻找更容易使用的东西。

问候

问题是,在我的国家,这个数字是 150,00; 有时我在使用floatformat时遇到一个错误。但是在网上看,我找到了解决方案:用户将所有十进制字段本地化为表单:

def __new__(cls, *args, **kwargs):
    new_class = super(MyForm, cls).__new__(cls, *args, **kwargs)
    for field in new_class.base_fields.values():
        if isinstance(field, DecimalField):
            field.localize = True
            field.widget.is_localized = True
    return new_class

之后在模板中使用 l10n。如果你想使用没有格式的数字,请使用myfield.value|unlocalize,像这样:

{% load humanize %}
{% load l10n %}
(....)
{{ myfield.pk|unlocalize }}

这对我有用。

最新更新