PostgreSQL中的Django IntegerField在1000处出现“数字字段溢出”错误

时间:2019-03-05 02:34:22

标签: django database postgresql integer

上下文:我已将项目从本地SQLite数据库移至AWS RDS PostgreSQL数据库。它是一个空白数据库,因此迁移可以正常进行,但是现在我正在测试实际上是在保存数据,因此在IntegerField上出现错误。

models.py

class Item(models.Model):
    name = models.CharField(max_length=100)
    description = models.TextField(null=True, blank=True)
    amount = models.IntegerField(default=0)

test.py

testItem = Item(name="Test item valued at 1000")
testItem.description = "please delete"
testItem.amount = 1000
testItem.save()

所以我得到这个错误:

numeric field overflow
DETAIL:  A field with precision 5, scale 2 must round to an absolute value less than 10^3.

错误非常明显,我将其向下拨回一点就可以了。但是我给人的印象是IntegerFields可以达到2147483647。我不知道为什么整数涉及精度和小数位数。我只是不太确定发生了什么,我的数据库是否认为这是一个十进制?我进行了一次新的迁移,顺利进行,以前该字段从未是DecimalField。我觉得这里可能缺少一些非常简单的东西。

0 个答案:

没有答案