TypeError: init() missing 1 required positional argument: 'on_delete' 解决办法
  • 当执行应用app模型迁移时: python manage.py makemigrations app_name

    出现错误:TypeError: init() missing 1 required positional argument: ‘on_delete’

解决方案:

  • 定义外键的时候需要加上 on_delete=;

    即:contract = models.ForeignKey(Contract, on_delete=models.CASCADE)

  • 原因如下:

    django 升级到2.0之后,表与表之间关联的时候,必须要写on_delete参数,否则会报异常:

    TypeError: init() missing 1 required positional argument: ‘on_delete’

    参数 含义
    on_delete=None 删除关联表中的数据时,当前表与其关联的field的行为
    on_delete=models.CASCADE 删除关联数据,与之关联也删除
    on_delete=models.DO_NOTHING 删除关联数据,什么也不做
    on_delete=models.PROTECT 删除关联数据,引发错误ProtectedError

    models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)

    on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)

    models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')

    on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)

    on_delete=models.SET, # 删除关联数据,

    a. 与之关联的值设置为指定值,设置:models.SET(值)

    b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

    由于多对多(ManyToManyField)没有 on_delete 参数,所以以上只针对外键(ForeignKey)和一对一(OneToOneField)

最新文章

  1. IOS开发基础知识--碎片50
  2. 一个用纯CSS实现的下拉菜单
  3. Lesson 6 Percy Buttons
  4. codevs 1021 玛丽卡(spfa)
  5. javascript中通过匿名函数进行事件绑定
  6. 测试数学公式latex
  7. PostrgreSQL 表名大小些问题(public."tablename")
  8. ASP.NET MVC html help
  9. Using Friendly URLs in ASP.NET Web Forms
  10. POJ C程序设计进阶 编程题#1:计算矩阵边缘之和
  11. php时间函数
  12. [设计模式] 4 原型模式 prototype
  13. Apache与tomcat
  14. SpringMVC日期类型转换问题三大处理方法归纳
  15. 自学WEB前端到什么程度才能就业
  16. 20175310 《Java程序设计》第9周学习总结
  17. 基于ionic4、cordova搭建android开发环境
  18. nginx——location匹配流程图
  19. python函数的用法
  20. NO Route to Host 连接mysql数据库

热门文章

  1. 亲测有效! TG Pro 实时温度工具 V2.7.6 for mac 破解版
  2. 云原生时代顶流消息中间件Apache Pulsar部署实操-上
  3. [清华集训2016] Alice 和 Bob 又在玩游戏
  4. Java项目常用的异常处理
  5. 《爆肝整理》保姆级系列教程-玩转Charles抓包神器教程(9)-Charles如何修改请求参数和响应数据-上篇
  6. pat乙级1023 组个最小数
  7. Qt实现简单的TCP协议(客户端的实现)
  8. 微信内h5调用支付
  9. Mongo 常用命令
  10. 1414:【17NOIP普及组】成绩