首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Django(15)和表关系

如果对应的那条数据被删除了,那么这条数据也会被删除。 PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。 SET_NULL:设置为空。...如果的那条数据被删除了,那么在本条数据上就将这个字段设置为空。如果设置这个选项,前提是要指定这个字段可以为空。 SET_DEFAULT:设置默认值。...如果的那条数据被删除了,那么本条数据上就将这个字段设置为默认值。如果设置这个选项,前提是要指定这个字段一个默认值。 SET():如果的那条数据被删除了。...那么将会获取SET函数中的值来作为这个的值。SET函数可以接收一个可以调用的对象(比如函数或者方法),如果是可以调用的对象,那么会将这个对象调用后的结果作为值返回回去。...一切全看数据库级别的约束。 注意:以上这些选项只是Django级别的,数据级别依旧是RESTRICT! 表关系 表之间的关系都是通过来进行关联的。

2.1K40
您找到你想要的搜索结果了吗?
是的
没有找到

django 引用自身和on_delete参数

如果对应的那条数据被删除了,那么这条数据也会被删除。 PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。如果我们强行删除,Django就会报错。...那么将会获取SET函数中的值来作为这个的值。SET函数可以接收一个可以调用的对象(比如函数或者方法),如果是可以调用的对象,那么会将这个对象调用后的结果作为值返回回去。...、update的时候,子表会将关联记录的字段所在列设为null,所以注意在设计子表时不能设为not null; 为什么在django中可以是用不同的约束去操作数据库呢。...比如 django 中 on_delete=CASCADE, 但是数据库的约束是RESTRICT....在进行删除A表数据时,发现被约束着,使数据不能被删除,则django会先去删除约束的B表数据,然后再来删除A表数据

1.3K20

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

BigAutoField 64位的整形,类似于AutoField,只不过是产生的数据的范围是1-9223372036854775807。 3....因此这里我们首先来介绍下Django中的使用。 类定义为class ForeignKey(to,on_delete,**options)。...如果对应的那条数据被删除了,那么这条数据也会被删除。 2.PROTECT:受保护。即只要这条数据引用了的那条数据,那么就不能删除外的那条数据。 3.SET_NULL:设置为空。...如果的那条数据被删除了,那么本条数据上就将这个字段设置为默认值。如果设置这个选项,前提是要指定这个字段一个默认值。 5.SET():如果的那条数据被删除了。...那么将会获取SET函数中的值来作为这个的值。SET函数可以接收一个可以调用的对象(比如函数或者方法),如果是可以调用的对象,那么会将这个对象调用后的结果作为值返回回去。

3.9K30

MySQL 物理开始的思考

) Using FOREIGN KEY Constraints(mysql官网) 原文:用的好处我就不多说了,既然是关系型数据库,的约束为我们保证了数据主从关系和产生的先后关系,级联操作为我们的...我们来看个例子,然后我们根据以下的点来分析: 一、的性能问题 我刚写了一些,然后发现有人写的更好而且简洁,就引用吧:@mysqlops 为何说有性能问题: 1.数据库需要维护的内部管理; 2....等于把数据的一致性事务实现,全部交给数据库服务器完成; 3.有了,当做一些涉及字段的增,删,更新操作之后,需要触发相关操作去检查,而不得不消耗资源; 4.还会因为需要请求对其他表内部加锁而容易出现死锁情况...比较公认的是,他的设计得的确不是很好,限制多功能不强大等。(同样的,讨论是不是该用存储过程也存在这种思考) 这里贴上一些博客园看到的,比较严重的问题。...但不使用物理的我们也有方案去实现我们的逻辑,并保证他正确运行。 数据库上的一个策略:可以选择大多数情况下我们只更新不删除,也就是逻辑删,不再使用的历史数据定期归档来减少压力。

3.8K20

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...= class_number # 将‘001'复制给数据字段 字段在django类里名(room_number)在数据库名(room_number_id)      c.save() return...s.teacher.remove(x) return HttpResponse("ojbk") 以上这篇django实现在开发中取消约束就是小编分享给大家的全部内容了,希望能给大家一个参考。

3.6K10

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规定逻辑关联删除动作...,models.DO_NOTHING关联无动作 三.以外字段关联 1)断关联,删除关联表记录,键值置空 db_constraint=False, on_delete=models.SET_NULL...,反向找 字段related_name 3)db_constraint断开表关联,on_delete不存在(不设置,本质在第三张表中设置,且一定是级联)

3K20

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

之前已经写过一篇关于Django的文章,但是当时并没有介绍如何根据数据的操作,也就是如何通过主表查询子表或者通过子表查询主表的信息 首先我定义了两个模型,一个是老师模型,一个是学生模型,...返回一个teacher对象,接下来就是查询teacher相关联的学生对象,在这里有一个需要注意的点,django默认情况下每一个主表的对象都有一个是的属性,可以通过它查询到所有关于子表的信息...,直接就给定义好名称使用related_name 上面的查询主要是通过主表查询子表的信息 下面说一下如何通过子表查询主表的相关信息,也就是查询一个学生所对应的老师的信息 首先需要先获取一个子表的对象...,那么就可以通过定义时候的那个的字段名获取关于主表的信息了 比如我得到了一个student对象,然后我想要得到这个student对象对应的主表teache中的信息的话,就使用 student.teacher...获取,其中这个teacher就是在子表中定义的字段,如下: 发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149807.html原文链接:https://javaforall.cn

2K10

数据库主键和

主键、和索引的区别?...主键 索引 定义: 唯一标识一条记录,不能有重复的,不允许为空 表的是另一表的主键, 可以有重复的, 可以是空值 该字段没有重复值,但可以有一个空值 作用: 用来保证数据完整性 用来和其他表建立联系用的...是提高查询排序的速度 个数: 主键只能有一个 一个表可以有多个 一个表可以有多个惟一索引 聚集索引和非聚集索引的区别?...聚集索引,在索引页里直接存放数据,而非聚集索引在索引页里存放的是索引,这些索引指向专门的数据页的数据。...创建: ALTER TABLE news_info[子表名] ADD CONSTRAINT FK_news_info_news_type[约束名] FOREIGN KEY (info_id)[子表列

2.3K20

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

python测试开发django-37.(ForeignKey)查询

前言 前面在admin后台页面通过设置,可以选择下拉框的选项,本篇主要讲解关于(ForeignKey)的查询 models设计 在上一篇的基础上新增一个BankName表,Card表通过关联到...python manage.py makemigrations python manage.py migrate shell模式新增测试 为了调试方便,可以使用django的shell模式,对表的数据增删改查操作...(ForeignKey)只有一个时,可以通过_set去查询到,当有多个时,就无法查询具体哪个了,这时候就需要加个related_name参数。...verbose_name_plural = '银行卡账户' def __str__(self): return self.card_id related_name参数相当于给这个取了个别名...,方便多个时候去识别。

1.6K20
领券