首页 > 其他分享 >django项目 models新增class :TypeError: __init__() missing 1 required positional argument: 'on_delet

django项目 models新增class :TypeError: __init__() missing 1 required positional argument: 'on_delet

时间:2022-09-27 10:34:09浏览次数:83  
标签:__ TypeError 删除 models 关联 SET delete

File "D:\boke\boo\models.py", line 22, in UserInfo
blog = models.OneToOneField(to="Blog", to_field="nid", null=True)
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各个参数的含义如下:

    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)

标签:__,TypeError,删除,models,关联,SET,delete
From: https://www.cnblogs.com/zs0621/p/16733629.html

相关文章

  • Qt Table Widget常用操作 添加复选框控件
    QtTableWidget常用操作一、鼠标悬浮在item上显示提示信息 1、在构造函数开启tableWidget控件的鼠标捕获功能//开启鼠标捕获功能(实现tablewidget的悬浮功能)......
  • Java泛型的总结
    泛型可以用于接口、类、方法上。还有泛型通配符这个概念泛型的好处:可以在编译时检查1.用于方法中,指定该方法中的形参的类型。语法:修饰符<代表泛型的变量>返回值类型......
  • Java Stream常用代码
    //过滤数据List<TestVo>list=list.stream().filter(x->NumberUtil.isLessOrEqual(x.getPrice(),testVo.getPrice())).collect(Collectors.toLis......
  • 智能分析网关基于AI烟火识别技术的消防预警方案
    AI烟火识别是基于深度学习神经网络技术和视频智能分析的一项实用性技术,通过对监控区域内的烟雾和火焰进行精准检测与识别,并实时预警,有效协助工作人员及时处理消防危机。......
  • Sass 笔记
    SassSass全称"SyntacticallyAwesomeStyleSheets",是CSS的一种扩展语言。变量VariableSass允许使用变量(最新的CSS也支持了变量)。可以在Sass中声明变量,并为......
  • 计算hash和md5的工具md5deep
    计算hash和md5的工具md5deep下载地址:https://sourceforge.net/projects/md5deep/还是比较好用!C:\Users\lx>md5deeptest.pymd5deep:WARNING:Youarerunninga32-b......
  • 紫光同创CPLD PGC2KG下载.sbit文件到flash
    1、打开PDS软件,右击Flow窗口的GenerateBitstream; 2、选择ProjectSetting  3、将框中的数据改为389C3 4、如果你的界面如下,就按下图中的改(这是......
  • 所有电商API接口分类,淘宝Tmall,1688,拼多多、抖音API接口等
    A类标准接口淘宝APIitem_get获取商品详情根据商品ID查询商品标题价格描述等详情数据淘宝APIitem_search按关键字搜索商品搜索关键字,显示商品总数,标题,图片,优惠价等......
  • shopify capital主题模板配置修改
    shopifycapital主题有风格和精确地展示产品,这个主题非常适合编辑内容,优化了更长的文本部分,以支持品牌的故事叙述;高容量商店,专为在特定时期处理大量交易的商店设计  ......
  • tomcat 配置https (单向认证)
    1.单向认证,就是传输的数据加密过了,但是不会校验客户端的来源2.双向认证,如果客户端浏览器没有导入客户端证书,是访问不了web系统的,找不到地址如果只是加密,单向就行如果想要......