美文网首页
django外键约束——on_delete相关的问题

django外键约束——on_delete相关的问题

作者: 黑人的嘿 | 来源:发表于2018-10-19 09:57 被阅读0次

在最新的django框架中,models设置外键约束时,on_delete是必填项,所以创建外键时如何设置on_delete的属性就很重要。

CASCADE:这就是默认的选项,级联删除,你无需显性指定它。
PROTECT: 保护模式,如果采用该选项,删除的时候,会抛出ProtectedError错误。
SET_NULL: 置空模式,删除的时候,外键字段被设置为空,前提就是blank=True, null=True,定义该字段的时候,允许为空。
SET_DEFAULT: 置默认值,删除的时候,外键字段设置为默认值,所以定义外键的时候注意加上一个默认值。
SET(): 自定义一个值,该值当然只能是对应的实体了.

  **官方案例**
  def get_sentinel_user():
      return get_user_model().objects.get_or_create(username='deleted')[0]
  
  class MyModel(models.Model):
      user = models.ForeignKey(
          settings.AUTH_USER_MODEL,
          on_delete=models.SET(get_sentinel_user),
      )

相关文章

  • django外键约束——on_delete相关的问题

    在最新的django框架中,models设置外键约束时,on_delete是必填项,所以创建外键时如何设置on_d...

  • 【Django 2.2文档系列】Model 外键中的on_del

    场景 我们用Django的Model时,有时候需要关联外键。关联外键时,参数:on_delete的几个配置选项到底...

  • django 2.0外键处理

    Django2.0里model外键和一对一的on_delete参数 在django2.0后,定义外键和一对一关系的...

  • [外键约束问题]django.db.utils.Integrit

    [外键约束问题]django.db.utils.IntegrityError: (1215, 'Cannot ad...

  • Django 取消外键约束

    今天在往数据库插入数据的时候发现有外键约束,不让插入数据库解决方案:在setting.py里添加 便可以解决!

  • django模型中关联关系查询

    写的很乱,写的时候思路不够清晰 django中模型多对多关系 ForeignKey外键约束,在django中是表示...

  • 草稿四

    ● 外键的删除操作---on_delete参数指定 <1> models.CASCADE---级联删除外键表的字段...

  • 5 MySQL 命令

    [Toc] 1 禁用外键约束 禁用外键约束:SET FOREIGN_KEY_CHECKS=0 启用外键约束:set...

  • MySQL学习日记(16)约束的增删改

    增 添加约束 主键 添加约束 唯一 添加约束外键 这里出现了两个问题 添加外键时父表的字段必须是键,如果报错Inv...

  • 外键约束

    外键约束主要包含添加外键和删除外键。 1、外键约束-添加外键 create table 表名(字段名 数据类型,....

网友评论

      本文标题:django外键约束——on_delete相关的问题

      本文链接:https://www.haomeiwen.com/subject/ygxyzftx.html