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

时间:2013-10-28 13:29:50

标签: django templates format

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

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

此致

1 个答案:

答案 0 :(得分:0)

问题是,在我的国家,这个数字是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 }}

这对我有用。