我试图在数据库中插入,但似乎是Decimals的一个问题。
我有latitude
和longitude
,如下所示:
latitude = models.DecimalField(max_digits=30, decimal_places=15)
然后,当我尝试插入时,我写道:
Place(name="center", description="study center", latitude=41.214555, longitude=2.121451)
但是我收到了这个错误:"quantize result has too many digits for current context"
我应该能够拥有这些数字,对吧?我不明白为什么会收到这个错误。如果有人可以帮助我,那我真的很感激。
答案 0 :(得分:2)
考虑这个模型:
class Place(models.Model):
name = models.TextField()
description = models.TextField()
longitude = models.DecimalField(max_digits=30, decimal_places=15)
latitude = models.DecimalField(max_digits=30, decimal_places=15)
这应该有效(使用的最大允许位数和小数位数):
p = Place(
name='Name',
description='Description',
latitude=0123456789012345.0123456789012345,
longitude=0123456789012345.0123456789012345
)
p.save()
这应该失败(超过顶部的值):
p = Place(
name='Name',
description='Description',
latitude=01234567890123456.01234567890123456,
longitude=01234567890123456.01234567890123456
)
p.save()
确保在更改Django代码后相应地迁移/更改了数据库。
答案 1 :(得分:0)
我在某处读到可以使用相同的max_digits和decimal_places,并且我有相同数字的经度......我把它放在与纬度相同的方式,删除数据库,再次使用dbsync生成它,现在它已经是' s正确地进行插入。 谢谢大家!