Django:从db显示的DecimalField格式值

时间:2016-07-11 03:20:53

标签: python django django-templates

我的表单中包含DecimalField

price = forms.DecimalField(required=True, widget=forms.NumberInput(
         attrs={'class': 'form-control text-right', 
               'style': 'text-align: right', 'step': '0.00001'}))

当我在模板中显示此字段时,它始终显示如下的值: 如果我在db中的值是145.00000,则在模板中将显示145.00000(OK)。但 如果我在db中的值是14400.00000,则在模板中将显示14,400.00000(不正常),因为当我将此值设置为js的另一个字段时,它将显示错误:

The specified value "14,400.00000" is not a valid number. 
  The value must match to the following regular expression:
   -?(\d+|\d+\.\d+|\.\d+)([eE][-+]?\d+)? 

我该如何格式化?我认为如果在整数除法中有超过3位数,它将显示,而不是.我的模板看起来像

<td>{{ form.price }}</td>

1 个答案:

答案 0 :(得分:2)

在将其呈现给模板之前,您始终可以在控制器级别使用str.replace():

decimal_number = str(decimal_number).replace(",", "")

如果您想在模板级别执行此操作,那么在Django中您可以禁用这样的FloatField格式:

{{ form.price|stringformat:"f" }}

希望它有所帮助。