django 报错:ValueError: The database backend does not accept 0 as a value for AutoField.

错误原因:
在创建一个model时,其中一个字段你用了别一个model的做为外键,并且给这个外键设置了一个默认值 ,而这个默认值不适用于键model中自动创建

再找一下报错的脚本:

  Applying oiarpt.0004_auto_20170822_1419... OK
  Applying oiarpt.0005_auto_20170822_1652...Traceback (most recent call last):
  File "manage.py", line 22, in <module>
    execute_from_command_line(sys.argv)
  File "D:\python3.6\lib\site-packages\django\core\management\__init__.py", line 363, in execute_from_command_line

由上面的信息可以看出在执行:Applying oiarpt.0005_auto_20170822_1652…Traceback (most recent call last):时报错的:
打开项目\oia_report\oiarpt\migrations 找到对应的文件可以看到:

field=models.ForeignKey(default=0, on_delete=django.db.models.deletion.CASCADE, to='oiarpt.Product'),

问题就出在这里:

解决方法:
删除0005_auto_20170822_1652.py
然后重新执行:
python manage.py makemigrations
python manage.py migrate
此时就不会报错了

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

crystalnsd

万水千山总是情,支持一下行不行

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值