千家信息网

django2.0关联表中必填on_delete参数的含义是什么

发表于:2025-01-24 作者:千家信息网编辑
千家信息网最后更新 2025年01月24日,这篇文章主要介绍django2.0关联表中必填on_delete参数的含义是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一对多(ForeignKey)class Fore
千家信息网最后更新 2025年01月24日django2.0关联表中必填on_delete参数的含义是什么

这篇文章主要介绍django2.0关联表中必填on_delete参数的含义是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

一对多(ForeignKey)

class ForeignKey(ForeignObject):  def __init__(self, to, on_delete, related_name=None, related_query_name=None,         limit_choices_to=None, parent_link=False, to_field=None,         db_constraint=True, **kwargs):    super().__init__(to, on_delete, from_fields=['self'], to_fields=[to_field], **kwargs)

一对一(OneToOneField)

class OneToOneField(ForeignKey):  def __init__(self, to, on_delete, to_field=None, **kwargs):    kwargs['unique'] = True    super().__init__(to, on_delete, to_field=to_field, **kwargs)

从上面外键(ForeignKey)和一对一(OneToOneField)的参数中可以看出,都有on_delete参数,而 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)

class ManyToManyField(RelatedField):  def __init__(self, to, related_name=None, related_query_name=None,         limit_choices_to=None, symmetrical=None, through=None,         through_fields=None, db_constraint=True, db_table=None,         swappable=True, **kwargs):    super().__init__(**kwargs)

因为多对多(ManyToManyField)没有 on_delete 参数,所以略过不提.

以上是"django2.0关联表中必填on_delete参数的含义是什么"这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注行业资讯频道!

关联 参数 数据 一对一 含义 内容 前提 字段 对象 篇文章 之间 价值 兴趣 小伙 小伙伴 时候 更多 知识 行业 行为 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 外文专利数据库属于什么 服务器哪里可以看到raid nba2k22登陆不了服务器 全球外观设计数据库 数据库相同的目n是什么意思 java 连接云数据库 网络技术试验报告新的 美团外卖服务器流程 如何拉重复数据库 网络安全法中关于网络的定义 x86服务器的cpu数量配置 房易通网络技术有限公司 软件开发公司如何寻找客源 windows服务器安全 软件开发用树形目录节点 商用开源流媒体服务器 富士康嵌入式软件开发招聘 怎样学习使用数据库 家里电脑当服务器可以远程访问 更新数据库系统的多级安全 内网vue上传图片地址到服务器 网络安全与技术研究生就业前景 数据库如何将两表进行右连接 信阳职业学院网络安全专业好吗 炉石2017年服务器 江财数据库试卷 北京地铁卡是不是有数据库 康经理 APP软件开发定制 海康网络存储服务器密码忘记 嘉禾县委网络安全
0