2 回答
TA贡献1802条经验 获得超6个赞
这基本上是一个迁移问题,因为迁移文件是根据您的初始代码生成的,并且在迁移时,这些迁移文件正在执行并引发错误。
我认为您可以使用以下任一解决方案来修复它:
解决方案一
首先,您应该删除运行时创建的目录内的迁移文件(即0003_auto_<some id>.py)。如果您不确定要删除哪一个,请检查数据库中的表并查看它已应用到哪些迁移。删除最后一个迁移文件(或多个文件)后,您需要将默认值更改为. 然后你应该运行 makemigrations 和 migrate 命令。<app>/migrationspython manage.py makemigrationsdjango_migrations0
解决方案二
将默认值更改为0in models。然后更改在模型中添加字段时创建的迁移文件,如下所示:
operations = [
migrations.AddField(
model_name='userprofile',
name='balance',
field=models.BigIntegerField(default=0), # instead of default='0'
),
此外,当您修复默认值并重新运行迁移命令时,您应该删除其他迁移文件(如果它们已生成)。
TA贡献1966条经验 获得超4个赞
BigIntegerField 默认值需要是整数而不是引号:
balance = models.BigIntegerField(default=0)
或者,如果您需要小数:
balance = models.DecimalField(max_digits=6, decimal_places=2, default=0)
或使用 MoneyField https://github.com/django-money/django-money
添加回答
举报