Django&Python:通过添加分隔符以django格式设置FloatField的格式

时间:2018-09-18 10:15:39

标签: python django django-forms

好吧,我不知道如何在Django上执行此操作,所以请帮助我。

我的float字段类似于:

montant= forms.FloatField(initial="0",required = False)

我想在数字中显示分隔符

示例:

  • 当我在字段上书写时,数字是:1000000.00

我需要的

  • 在字段上书写时,我希望数字看起来像:1 000 000.00

有什么需要帮助的吗?预先谢谢你

2 个答案:

答案 0 :(得分:2)

您可以为此使用模板过滤器。 在模板中,您以{{montant|readable_integer}}的形式呈现字段 通过应用read_string过滤器,您可以定义自己。

过滤器

from django import template
register = template.Library()

@register.filter()
def readable_integer(integer):
    readable=str(integer).split(".")[0][::-1]
    readable=[readable[i:i+3] for i in range(0, len(readable), 3)]
    if len(str(integer).split("."))==1:
        end=""
    else:
        end="."+str(integer).split(".")[1]
    return " ".join(readable[::-1])+end

答案 1 :(得分:1)

正如我的评论中所述,使用Java而不是Django本身可以更好地解决您的特殊情况(input字段中的千位数字)。

我建议遵循this tutorial的第1节“如何格式化货币值”,该部分描述了如何使用JS(和jquery)捕获,清理和更改input中显示的数字)。