在一对多关系中,例如主机对应多个role,每个role对应1个主机,

当删除了某个主机时候,发现对应的role也被删除了,于是查了手册,应该如下写:

class Host(models.Model):

hostname = models.CharField(max_length=20,primary_key=True, blank=False)

static_ip = models.CharField(max_length=20,unique = True)

class CCRole(models.Model):

name = models.CharField(max_length = 20,primary_key = True)

host = models.ForeignKey(Host,null=True,blank=True,on_delete=models.SET_NULL)

给ForeignKey增加属性,

on_delete=models.SET_NULL

即可。

该属性还有其他值可选:

CASCADE: 默认的,级联删除

PROTECT: 通过抛出django.db.models.ProtectedErrordjango.db.models.ProtectedError错误来阻止删除关联的对象

SET_NULL: 设置ForeignKey 为 null; 这个只有设置了null 为 True的情况才能用

SET_DEFAULT: 设置 ForeignKey 为默认值; 默认值必须预先设置

SET(): 设置为某个方法返回的值

DO_NOTHING: 什么都不做,如果数据库设置必须关联则会报IntegrityError错

django orm级联_Django ORM 级联删除相关推荐

  1. mysql django构架图_Django框架之数据库ORM框架

    首先,我来介绍一下什么是ORM框架: O是object,也就类对象的意思,R是relation,翻译成中文是关系,也就是关系数据库中数据表的意思,M是mapping,是映射的意思.在ORM框架中,它帮 ...

  2. Django的核心思想ORM

    元类实现ORM 1. ORM是什么 ORM 是 python编程语言后端web框架 Django的核心思想,"Object Relational Mapping",即对象-关系映射 ...

  3. Django(22)-ORM中F对象和Q对象

    Django(1)-简介 Django(2)-创建项目及默认项目目录结构介绍 Django(3)-配置文件详解 Django(4)-URL和视图 Django(5)-路由配置实例 Django(6)- ...

  4. Django中models利用ORM对Mysql 进行查表的语句(多个语句)

    Django中models利用ORM对Mysql 进行查表的语句(多个语句) 字段查询 all():返回模型类对应表格中的所有数据. get(): 返回表格中满足条件的一条数据,如果查到多条数据,则抛 ...

  5. mysql数据库教程级联_Mysql实现级联操作(级联更新、级联删除)

    tablestu( sidint UNSIGNED primary keyauto_increment, namevarchar(20) not null) TYPE=InnoDB charset=u ...

  6. Oracle数据库中的级联查询、级联删除、级联更新操作教程

    这里整理了Oracle中的三种级联操作,其中Oracle定义外健的时候可以定义级联删除,但是没有级联修改的语法,当然可以用触发器实现,下面我们详细来看Oracle数据库中的级联查询.级联删除.级联更新 ...

  7. sql级联更新和级联删除

    title: sql级联更新和级联删除 date: 2019-05-27 23:15:29 tags: [SQL, Mysql] sql级联更新 执行更新book表失败 后来查找原因是book表被bo ...

  8. mysql级联删除外键约束_MySQL外键约束、级联更新、级联删除

    MySQL支持外键(foreign key),外键允许跨表交叉引用相关数据,另外外键约束能够保证相关数据的一致性.一个外键关系通常包括一个父表和一个子表.父表包含原始的字段数据,子表引用父表中该字段的 ...

  9. mysql级联更新和级联删除

    级联更新和级联删除 1.首先我们建一张主表,把sid设为主键 CREATE TABLE `zhu` (`sid` int(10) unsigned NOT NULL AUTO_INCREMENT,`n ...

最新文章

  1. 直播报名 | 用户中台建设实践解析
  2. linux shell oracle脚本_领导:如何用shell脚本统计Oracle数据库进程明细和存储过程信息...
  3. Qt 调用VISA库通过SCPI程控仪器-以IT8906A电子负载为例
  4. ubuntu14.04-64位机配置android开发环境,ADT,sdk,eclipsea
  5. 福师计算机应用基础期末,福师2015计算机应用基础》期末试卷A123
  6. mySQL 分组查询,根据分组的字段,取最小值
  7. Java 时间处理 ZoneDateTime
  8. Mac OS X 10.7.2 Lion下快速锁定屏幕
  9. ubuntn安装qt5.12.10
  10. 第33篇-steam密码参数分析
  11. JUCE框架教程(1)——Projucer入门
  12. python利用pil 制作透明图片水印
  13. 做绿色数据中心基础设施建维服务认证有哪些好处?
  14. CloudDrive — 将阿里云盘变成电脑本地磁盘,网盘挂载映射为本地磁盘!
  15. 【一起学系列】之策略模式:好多鸭子啊
  16. Cocos Creator 入门笔记
  17. html表单验证邮箱表达式,Javascript正则表达式实现表单验证
  18. 用Android手机远程桌面连接登陆Windows10(用微软账号登陆),Microsoft账户登陆的计算机远程桌面连接问题
  19. 详解AUTOSAR:什么是AUTOSAR?(理论篇—1)
  20. Codeforces Round #406 (Div. 1) A. Berzerk 记忆化搜索

热门文章

  1. java基础_笔记(dos,java基础信息,final,static,abstract,接口,抽象类,数组,排序string,stringbuff/stringbuilder)
  2. 若依微服启动报Invalid bound statement (not found): com.xbo.system.mapper.SysConfigMapper.selectConfigList问题
  3. sklearn超参数选择
  4. token验证技术的原理和简单实现
  5. matlab移花接木,天龙八部分析帝:天山移花接木VS明教怒火连斩
  6. ✿bugku✿一切有为法如梦幻泡影
  7. [商业资讯] 燃精灵软件 今日分享
  8. java-php-python-ssm选课排课系统计算机毕业设计
  9. WebRtc GCC、Sendside-BWE 区别
  10. 基于单片机电子指南针系统设计(毕业)-全套资料分享