在创建一对多的关系的,需要在ForeignKey的第二参数中加入on_delete=models.CASCADE 主外关系键中,级联删除,也就是当删除主表的数据的时候从表中的数据也随着一起删除。
这是数据库外键定义的一个可选项,用来设置当主键表中的被参考列的数据发生变化时,外键表中响应字段的变换规则的。
on_delete有以下几种值可选择:
-
CASCADE: 默认的,级联删除
-
PROTECT: 通过抛出
django.db.models.ProtectedErrordjango.db.models.ProtectedError
错误来阻止删除关联的对象 -
SET_NULL: 设置ForeignKey 为 null; 这个只有设置了null 为 True的情况才能用
-
SET_DEFAULT: 设置 ForeignKey 为默认值; 默认值必须预先设置
-
SET(): 设置为某个方法返回的值
-
DO_NOTHING: 什么都不做,如果数据库设置必须关联则会报IntegrityError错。