我有一个十进制字段,我想在我的模板中呈现到第四位(我需要它到第四位来进行其他计算)。我尝试过使用一个模板浮点过滤器来缩短小数位数,但结果是整个字段都消失了。在
我的模型中的字段是:
price_retail = models.DecimalField(default=0, max_digits=9, decimal_places=4)
我的表格是:
^{pr2}$带有FloatFilter的模板(字段根本不显示)
<td>{{form.price_retail|floatformat:2}}</td>
不带FloatFilter的模板(字段显示但精确到小数点后4位)
我很重视反馈和专业知识。在
<td>{{form.price_retail}}</td>
您只需设置实际表单字段的小数位数:
floatformat
希望其参数是可以转换为Decimal
实例的内容,而不是表单字段。form.price_retail
是一个表单域实例(具体来说是DecimalField
)。在DecimalField
确实接受^{我认为您需要自己^{} 值—可能是在表单的
__init__
方法中,也可能是在子类字段类型中,甚至是自定义小部件中—或者自己呈现输入元素,这样就可以直接在HTMLinput
value
属性上使用floatformat
。我认为最简单的方法是在__init__
中执行,如下所示:当然,您可以使用任何您喜欢的舍入策略,如文档所述用于量化。在
我认为如果您提交表单而不进行编辑,这实际上不会改变
price_retail
值,因为字段看起来与初始值没有变化。但我还没有测试过。在相关问题 更多 >
编程相关推荐