gpt4 book ai didi

Python Django 2.0 十进制字段 "Ensure that there are no more than 3 digits before the decimal point"

转载 作者:太空宇宙 更新时间:2023-11-03 14:45:00 29 4
gpt4 key购买 nike

我的金额列属性设置为 max_digits = 13,decimal_places = 7,因为从技术上讲,您可以拥有类似于 10000.0000001 比特币的东西。

当我尝试在我的表格中输入并提交 0.1 比特币时,出现错误:

Ensure that there are no more than 3 digits before the decimal point.

这没有按预期工作:0.1 不超过 3 位数字,即使是,我仍然应该能够设置超过 3 位数字。这里发生了什么?

模型.py

class Transactions(models.Model):   
user = models.ForeignKey(User, on_delete = models.CASCADE)
coin = models.CharField(max_length = 64)
buysell = models.CharField(default = 'buy', max_length = 4)
amount = models.DecimalField(max_digits = 13, decimal_places = 7)
trade_price = models.DecimalField(max_digits = 5, decimal_places = 2)
trade_date = models.DateTimeField(auto_now = True)

表单.py

class TransactionForm(forms.ModelForm): 

CHOICES = ((1, 'Buy'), (2, 'Sell'),)

coin = forms.ModelChoiceField(queryset = Coin.objects.all())
buysell = forms.ChoiceField(choices = CHOICES)

field_order = ['buysell', 'coin', 'amount', 'trade_price']

class Meta:
model = Transactions
fields = {'buysell', 'coin', 'amount', 'trade_price'}

最佳答案

如您所说,0.1 的小数点前不超过 3 位,因此不应出现该错误。因此,错误可能来自不同的领域。

您没有说明哪个字段出错,或者您为其他字段提交了哪些值,但我怀疑问题出在您的 trade_price 字段上。

trade_price = models.DecimalField(max_digits = 5, decimal_places = 2)

目前,这支持的最大值为 999.99。因此,如果您输入 trade_price=10000,您将收到不超过 3 位错误。

关于Python Django 2.0 十进制字段 "Ensure that there are no more than 3 digits before the decimal point",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50251447/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com