python - Django:从数据库显示的 DecimalField 格式值

标签 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(确定)。但 如果我在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/

相关文章:

python - Django 中的非全局中间件

python - 统计 Google 新闻搜索结果

python - 你如何在 Python 中子类化文件类型?

python - 当签名具有 '+' 符号时,Amazon S3 Python S3Boto 403 被禁止

html - 如何访问 CSS 中的媒体文件? Django

python - Django:匡威 `__endswith`

python - Django:根据字段的状态注释 Sum Case When

python - Django 模板中的日期格式

python - 在 Django 1.9 中找不到我的静态文件

django语言翻译标签