def validate_decimals(value):
try:
return round(float(value), 2)
except:
raise ValidationError(
_('%(value)s is not an integer or a float number'),
params={'value': value},
)
……在您的模型中,您可以这样应用它:
from django.db import models
class MyModel(models.Model):
even_field = models.FloatField(validators=[validate_decimals])
如果您希望实际确保模型始终只保存两位小数,而不只是更改模板中模型的表示形式,那么模型上的自定义保存方法将非常有用。下面的示例模型演示了如何。
现在,每次保存模型时,您将确保该字段将只填充两位小数。这可以概括为四舍五入到任意小数位数。
如果只关心} 。
FloatField
在表单中的显示方式,则可以使用模板过滤器^{来自Django文档:
例如,如果value=34.23234,则在模板中:
由于Django 1.8+您可以为FloatField/或任何ModelFields使用自定义验证器:
……在您的模型中,您可以这样应用它:
相关问题 更多 >
编程相关推荐