on_delete=models.CASCADE级联删除

on_delete=None, # 默认models.CASCADE

 


on_delete=models.CASCADE, # 级联删除,即关联的表删除某一项数据,此表关联的数据都会被删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
class Publisher(models.Model):
    name=models.CharField(max_length=32)
 
 
class Book(models.Model):
    name=models.CharField(max_length=32)
    publisher=models.ForeignKey(to="Publisher",on_delete=models.CASCADE)
 
 
'''
出版社
id  name
1   新华出版社
2   人民出版社   
3   机械工业出版社
 
 
id     name     publisher_id
1   新华字典            1
2   少年阿宾            2
3   python之路          3 
4   自然                1 
 
#级联删除,表示假如出版社删除了1和2,字段,关联到书的都会被删除掉,即会删除1,2,4
'''

  

 

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(可执行对象)

posted @   Oops!#  阅读(423)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
历史上的今天:
2018-05-25 zabbix客户端安装shadowscoks客户端监控访问google网站
点击右上角即可分享
微信分享提示