可以是 IntegerField 或 DecimalField 的 Django 字段

问题描述

在我的一个 Django 模型中,我有一个字段,它可以是基于用户IntegerFieldDecimalField

当记录的值为整数时,表单应仅显示/编辑它而没有尾随数字。当记录的值有小数时,所有小数都应在表格中显示/编辑。

我已尝试将此字段定义为 DecimalField 并使用表单,但挑战在于我使用 django-crispy-forms 来呈现表单,因此我无法在模板中使用 floatformat 过滤器。

因此,例如 5 作为整数,在我的表单中显示5.00000000

有没有办法解决这个问题?

解决方法

如果您想指定移除的 0 的数量,请尝试使用它:

{{ your_number|floatformat:"-8" }}

或者您也可以使用 normalize 删除所有尾随 0:

{{ your_number.normalize }}
,

尝试使用 round() 函数。 Link

当使用时不指定一组十进制数字,它只会删除任何尾随零。

,

在处理表单数据时尝试使用 int() 函数。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...