我正在尝试创建一个自定义表单字段,该字段与浮点字段的所有意图和目的相同,但是(默认情况下)输出没有尾随零的浮点值,例如 33 而不是 33.0
我试图像这样简单地扩展 django.forms.FloatField:
class CustomFloatField(django.forms.FloatField):
def to_python(self, value):
"""
Returns the value without trailing zeros.
"""
value = super(django.forms.FloatField, self).to_python(value)
# code to strip trailing zeros
return stripped_value
但这最终导致我收到验证错误。当我仔细查看 FloatField 类时,我注意到它在自己的to_python()方法中调用super(IntegerField, self).to_python(value)来检查以确保可以将值强制转换为 int,我的代码似乎绊倒了。这让我彻底糊涂了。如果 FloatField 必须尝试将其值转换为 int,它是如何工作的?:)
很可能我在这里完全叫错了树,但如果有人能指出我正确的方向,我将不胜感激。