Django 外键ForeignKey中的on_delete

当你在Django中删除了一个有着外键关联的数据时,比如一个作者和他名下的所有的书的信息,书的外键是作者(一个作者可有好多本书),当你把作者的信息从数据库中删除时,Django提供了一下几个参数来对作者的书的数据进行操作

外键的定义:

1 #models.py
2 class Author(models.Model):
3     name = models.CharField(max_length=128)
4 
5 class Books(models.Model): 
6     name = models.CharField(max_length=128)
7     author = models.ForeignKey("Author", on_delete=models.CASCADE)

* CASCADE:删除作者信息一并删除作者名下的所有书的信息;
* PROTECT:删除作者的信息时,采取保护机制,抛出错误:即不删除Books的内容;
* SET_NULL:只有当null=True才将关联的内容置空;
* SET_DEFAULT:设置为默认值;
* SET( ):括号里可以是函数,设置为自己定义的东西;
* DO_NOTHING:字面的意思,啥也不干,你删除你的干我毛线关系

原文地址:https://www.cnblogs.com/linkenpark/p/10898240.html