すべての目的と目的でfloatフィールドと同じように機能するカスタムフォームフィールドを作成しようとしていますが、(デフォルトでは)末尾のゼロなしでfloat値を出力します(例:33.0ではなく33)
私は次のように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にキャストする必要がある場合、FloatFieldはどのように機能しますか?:)
おそらく私はここで間違った木を完全に吠えていますが、誰かが私を正しい方向に向けることができれば、私は感謝するでしょう。