外键中on_delete的方法:
CASCADE:级联删除,只要删除publish,跟publish关联的book,全都被删除 SET_DEFAULT:只要删除publish,跟publish关联的book,的publish字段会变成默认值,一定要配合default使用 SET_NULL:只要删除publish,跟publish关联的book,的publish字段会变成空,一定要配合null=True使用 models.SET(add):括号中可以放个值,也可以放个函数内存地址,只要删除publish,跟publish关联的book,的publish字段会变成set设的值或执行函数
逻辑外键创建方法:
publish = models.ForeignKey(to='Publish', on_delete=models.DO_NOTHING, null=True, db_constraint=False)
models.DO_NOTHING:什么都不做,但它需要跟db_constraint=False配合,表示不建立外键约束,创建逻辑外键,不是物理外键 不建立物理外键的好处?增删查改数据快 缺点:容易出现脏数据
实际工作中,都不建立物理外键,都是建立逻辑外键
标签:逻辑,删除,models,publish,book,外键,delete From: https://www.cnblogs.com/wellplayed/p/17852962.html