gpt4 book ai didi

python - Django 十进制字段无法存储应该没问题的 float

转载 作者:行者123 更新时间:2023-12-05 05:50:22 25 4
gpt4 key购买 nike

在一个 Django 项目中,我试图存储一个计算出的十进制值,但由于某些奇怪的原因它失败了。我的模型看起来像:

class FancyModel(models.Model):
fancy_field = models.DecimalField(max_digits=10, decimal_places=3, null=True, blank=True)

有时,实际上经常会在保存时崩溃:

django.db.utils.IntegrityError:CHECK 约束失败:myapp_fancy_model

我在一些挖掘之后发现是由这个验证引起的:

django.core.exceptions.ValidationError: {'fancy_field': ['确保不超过 2 位小数。']}

我已经丢弃了实际模型的值,对我来说似乎没问题:

{'fancy_field': 3.26 }

我不明白这怎么会失败。有时它工作正常,有时它会崩溃。我尝试使用圆形方法,例如:

model_instance.fancy_model = round(floating_value, 2)但它仍然失败。

最佳答案

注释掉所有的代码,然后一行一行地添加回来,我发现这个错误根本不是由小数域引起的,而是一个 PositiveIntegerField 得到了一个负值。 model.full_clean() 根本没有提到 PositiveIntegerField,所以这真的很奇怪。那是几个小时我不会回来的:-/

关于python - Django 十进制字段无法存储应该没问题的 float ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70513441/

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