问题描述
在我的一个 Django 模型中,我有一个字段,它可以是基于用户的 IntegerField
或 DecimalField
。
当记录的值为整数时,表单应仅显示/编辑它而没有尾随数字。当记录的值有小数时,所有小数都应在表格中显示/编辑。
我已尝试将此字段定义为 DecimalField 并使用表单,但挑战在于我使用 django-crispy-forms
来呈现表单,因此我无法在模板中使用 floatformat
过滤器。
因此,例如 5
作为整数,在我的表单中显示为 5.00000000
。
有没有办法解决这个问题?
解决方法
如果您想指定移除的 0 的数量,请尝试使用它:
{{ your_number|floatformat:"-8" }}
或者您也可以使用 normalize
删除所有尾随 0:
{{ your_number.normalize }}
,
尝试使用 round()
函数。 Link
当使用时不指定一组十进制数字,它只会删除任何尾随零。
,在处理表单数据时尝试使用 int() 函数。