当我尝试提交模式表格时,出现错误“确保小数点前不超过3位数字”。
我该如何解决?
我的模特:
class Product(models.Model):
quantity = models.DecimalField( "Quantity", max_digits=8, decimal_places=2, default=0)
retail_price = models.DecimalField( max_digits=8, decimal_places=4, default=0, blank=True)
purchase_price= models.DecimalField( max_digits=8, decimal_places=2, default=0, blank=True)
timi_xondrikis = models.DecimalField( max_digits=8, decimal_places=2, default=0, blank=True)
我的表格:
class ProductForm(ModelForm):
class Meta:
model = Product
#fields = '__all__'
fields=('quantity','retail_price')
widgets = {
'retail_price' : forms.NumberInput(attrs={'max':9999.99})
}
接受价格字段900或900.00,但是提供我想要的1000或1000.00是不可接受的。事实是,我将我的retail_price字段定义为max_digits = 10。
为什么会这样?
答案 0 :(得分:1)
基本上,您需要根据documentation增加decimal_places
:
例如,存储最多999个数字,分辨率为2个小数 地点,您将使用:
models.DecimalField(..., max_digits=5, decimal_places=2)
因此,如果要存储10000,请使用decimal_places=4
。
答案 1 :(得分:0)
以retail_price
的形式为您的Meta
添加一个小部件,以指定最大值
widgets = {
'retail_price' : forms.NumberInput(attrs={'max':999.99})
}