我有一个带有 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(确定)。但 如果我在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>
最佳答案
在将 str.replace() 渲染到模板之前,您始终可以在 Controller 级别使用 str.replace():
decimal_number = str(decimal_number).replace(",", "")
如果您想在模板级别执行此操作,那么在 Django 中您可以禁用 FloatField 格式,如下所示:
{{ form.price|stringformat:"f" }}
关于python - Django:从数据库显示的 DecimalField 格式值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38298684/