Django:允许输入表单中的FloatField或IntegerField?

AP2*_*257 4 django

我有一个Django模型,价格为:

class Book(models.Model):
    title = models.CharField(max_length=200)
    price = models.FloatField(null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)

问题是我的用户可能输入245或245.00的价格,我希望系统能够处理任何一个.

我可以做一些聪明的事情吗?

Dan*_*man 5

我不明白为什么你需要做任何事情.float不必具有浮点组件 - 245与float一样有效245.00.

我会第二次maikhoepfel的建议,你不要使用花车价格.浮点无法准确表示某些十进制值 - 这是标准IEEE浮点算法的限制.但是,我建议您使用DecimalField,因为这对于具有固定小数位数的值(如价格)是理想的.