首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
您找到你想要的搜索结果了吗?
是的
没有找到

Django(15)和表关系

删除操作 如果一个模型使用了。那么在对方那个模型被删掉后,该进行什么样的操作。可以通过on_delete来指定。可以指定的类型如下: CASCADE:级联操作。...如果对应的那条数据被删除了,那么这条数据也会被删除。 PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。 SET_NULL:设置为空。...如果的那条数据被删除了,那么本条数据上就将这个字段设置为默认值。如果设置这个选项,前提是要指定这个字段一个默认值。 SET():如果的那条数据被删除了。...注意:以上这些选项只是Django级别的,数据级别依旧是RESTRICT! 表关系 表之间的关系都是通过来进行关联的。而表之间的关系,无非就是三种关系:一对一、一对多、多对多等。...这个OneToOneField其实本质上就是一个,只不过这个有一个唯一约束(unique key),来实现一对一。 以后如果想要反向引用,那么是通过引用的模型的名字转换为小写的形式进行访问。

2.1K40

MySQL3_查询

文章目录 MySQL_查询 1.数据的完整性 (1).保证实体的完整 (2).保证域的完整性 (3).引用的完整性 (4).自定义完整性 2. 3.实体之间的关系 (1).一对一:主键关系 (...13.插入语句的其它用法 MySQL_查询 1.数据的完整性 1.实体的完整性,一条记录,就是一个实体,如果记录无法区分,则失去了实体的完整性 2.域完整性:如果有两个字段无法区分,则失去了域完整性...unique) (2).保证域的完整性 1.数据类型的约束 2.默认值(default) 3.非空约束(not null) (3).引用的完整性 应用(foreign key) (4).自定义完整性...1.存储过程(相当于python中的自定义函数) 2.触发器 2. :从表的公共字段 的约束主要是用来保证引用的完整性的,主外的名字可以不一样,但是数据类型可以一样....ON DELETE CASCADE ON UPDATE CASCADE; #删除外 #score_ibfk_1 的名字,可以有多个 alter table score drop foreign

3K20

django 引用自身和on_delete参数

该模型使用引用自己本身。...如果对应的那条数据被删除了,那么这条数据也会被删除。 PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。如果我们强行删除,Django就会报错。...、update的时候,子表会将关联记录的字段所在列设为null,所以注意在设计子表时不能设为not null; 为什么在django中可以是用不同的约束去操作数据库呢。...比如 django 中 on_delete=CASCADE, 但是数据库的约束是RESTRICT....在进行删除A表数据时,发现被约束着,使数据不能被删除,则django会先去删除约束的B表数据,然后再来删除A表数据。

1.3K20

Django学习-第七讲:django 中的常用字段、字段属性,和表关系、操作

和表关系 在MySQL中,表有两种引擎,一种是InnoDB,另外一种是myisam。如果使用的是InnoDB引擎,是支持约束的。的存在使得ORM框架在处理表关系的时候异常的强大。...因此这里我们首先来介绍下Django中的使用。 类定义为class ForeignKey(to,on_delete,**options)。...因此在底层,Django为Article表添加了一个属性名_id的字段(比如author的字段名称是author_id),这个字段是一个,记录着对应的作者的主键。...如果一个模型使用了。...如果对应的那条数据被删除了,那么这条数据也会被删除。 2.PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。 3.SET_NULL:设置为空。

3.9K30

django在开发中取消约束的实现

# 在setting设置 'OPTIONS': { "init_command": "SET foreign_key_checks = 0;", } 补充知识:django-给关系传值...''' 两种方法 教室ClassRoom和教室编号ClassNumber 字段在django类里名(room_number)在数据库名(room_number_id) '''      # 一.1...(数据库的字段名字room_number_id)的值,将相对应的值直接赋值给该字段      class_number = ClassNumber.object.get("id=1").room_number...字段在django类里名(room_number)在数据库名(room_number_id)      c.save() return HttpResponse("ojbk") 多对一: 类似一对一...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发中取消约束就是小编分享给大家的全部内容了,希望能给大家一个参考。

3.6K10

约束

约束 foreign key 约束的要求: 父表和字表必须使用相同的存储引擎,禁止使用临时表; 数据库引擎只能是InnoDB; 列和参照列必须具有相似的数据类型,数字的长度或者是否有符号必须一样...,字符长度可以不不一样; 列和参照列必须创建索引,参照列没有索引,mysql回自动创建索引; ----------- 下面创建两个数据表 1(父表)省份表两个字段 id (主键) 省份名称 2(子表...)用户表三个字段 id (主键) 用户名称 省份编号(对应省表的主键id类型一样,因为需要把这个设置为约束) ------------------- 字表通过省份编号去在父表中查询省份名称; -...----------- 如果要创建约束,那么在父表最后加上一句 foreign key (省份编号字段) references 省份表 (省份id); 这样就创建一个约束, 上面两个表,也就是说用户表中的省份标号是...,相当于省份表 中的id,那么用户表的省份编号与省份表的id字段类型必须一样; ------------- 添加的语法 ALTER TABLE tbl_name ADD [CONSTRAINT

2K90

django模型中有关系的表删除相关设置

0904自我总结 django模型中有关系的表删除相关设置 一.一对一 例如有Author、AuthorDetail两表 author = models.OneToOneField(to='Author...related_name(detail),详情找作者用 字段(author) 3)db_constraint断开表关联,on_delete规定逻辑关联删除动作,models.CASCADE级联删除...,书删除没有任何影响 2)出版社找书用 related_name(books),书找出版社 字段(publish) 3)db_constraint断开表关联,on_delete规定逻辑关联删除动作...SET_DEFAULT设为默认值 两者区别 models.SET关联表内容删了,关联的相关内容不会删除 models.CASCAD关联表内容删了,关联的相关内容会删除 db_constraint关系断开后,但是不影响联表查询...,反向找 字段related_name 3)db_constraint断开表关联,on_delete不存在(不设置,本质在第三张表中设置,且一定是级联)

3K20

Django(ForeignKey)操作以及related_name的作用

之前已经写过一篇关于Django的文章,但是当时并没有介绍如何根据对数据的操作,也就是如何通过主表查询子表或者通过子表查询主表的信息 首先我定义了两个模型,一个是老师模型,一个是学生模型,...,并获取老师的相关信息 返回一个teacher对象,接下来就是查询teacher相关联的学生对象,在这里有一个需要注意的点,django默认情况下每一个主表的对象都有一个是的属性,可以通过它查询到所有关于子表的信息...makemigrations 和 python manage.py migrate 从上图可以看到和之前的_set操作的效果是一样的,这两个方法是相同的,所以如果觉得比较麻烦的话,可以在定义主表的的时候...,直接就给定义好名称使用related_name 上面的查询主要是通过主表查询子表的信息 下面说一下如何通过子表查询主表的相关信息,也就是查询一个学生所对应的老师的信息 首先需要先获取一个子表的对象...,那么就可以通过定义时候的那个的字段名获取关于主表的信息了 比如我得到了一个student对象,然后我想要得到这个student对象对应的主表teache中的信息的话,就使用 student.teacher

1.9K10

django序列化时使用的真实值操作

展示: 一般情况下序列化得到的的内容只是id: ... { fields: { uat_date: "2015-07-25", statu: "CG", name: "慢赢优化",...方法: 我序列化的是Content表,它含有一个关联的是Module表,1对多 我要先序列化Module表,然后序列化Content表的时候才可以使用到Module的真实值 class ModuleManager...actual_key,要保证先序列化,如下依赖: class Content(models.Model): name = models.CharField(max_length=100) ......,) + self.module.natural_key() # 和"def"同缩进 natural_key.dependencies = ['example_app.module'] 补充知识:django...原生的序列化serialize解析 在写接口的时候,大家都离不开对query结果集的序列化 嗯嗯嗯,一般我们都有DRF里面的序列化工具,但是django原生的serialize你们有 用过吗??????

1.8K10

的设置

关键词: | 索引 | InNoDB和MyISAM | 引用 | Mysql 设置的目的:保证数据的一致性!...一、的使用条件: ① 两个表必须是InnoDB表,MyISAM表暂时不支持 #查看表类型 SHOW TABLE STATUS #查询结果的Engine字段下,一般默认InnoDB类型 ②...列必须建立了索引,MySQL 4.1.2以后的版本在建立时会自动创建索引,但如果在较早的版本则需要显式建立; #创建索引 CREATE INDEX 字段1 ON test(字段1) #对...test2创建test的索引,在test2下执行,test2为从,test为主 这一步也是博主自己刚开始研究是碰到的最大的坑, 引用一直选不了对应字段,可能是你没有设置索引 ③ 关系的两个表的列必须是数据类型相似...; #父表更新子表更新方式 2、可视化界面设置 选中表—》关/系/ | F10 ——》外部 约束名自动生成不用管,重点是后面的更新和删除关键字 三、相关关键字含义 约束(表2)

2.7K30
领券