Django 外键ForeignKey中的on_delete

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

外键的定义:
数据库

#models.py
class Author(models.Model):
    author = models.CharField(max_length=250)

class Books(models.Model): 
    book = models.ForeignKey(Author,on_delete=models.CASCADE)
  • CASCADE:删除做者信息一并删除做者名下的全部书的信息;
  • PROTECT:删除做者的信息时,采起保护机制,抛出错误:即不删除Books的内容;
  • SET_NULL:只有当null=True才将关联的内容置空;
  • SET_DEFAULT:设置为默认值;
  • SET( ):括号里能够是函数,设置为本身定义的东西;
  • DO_NOTHING:字面的意思,啥也不干,你删除你的干我毛线关系