我的源代码
class Heroinfo(models.Model):
hname = models.CharField(max_length=20)#英雄姓名
hgender = models.BooleanField(default=True)#英雄性别
isDelete = models.BooleanField(default=False)#逻辑删除
hcomment = models.CharField(max_length=200)#英雄描述信息
hbook = models.ForeignKey('BookInfo')#英雄与图书表的关系为一对多,所以属性定义在英雄模型类中
在Django的ForeignKey字段中,必须指定on_delete
参数,以便在与此外键相关联的主记录被删除时指定行为。该参数的可选值包括:
models.CASCADE
:删除与外键相关的所有记录。models.PROTECT
:防止删除具有外键的记录。models.SET_NULL
:将与外键相关的记录设置为NULL。models.SET_DEFAULT
:将与外键相关的记录设置为默认值。models.SET()
:将与外键相关的记录设置为指定的值。models.DO_NOTHING
:不执行任何操作。
在我的代码中,你没有指定on_delete
参数,所以导致了这个错误。将代码更改为以下内容,指定一个有效的on_delete
参数:
hbook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)
这里我将on_delete
设置为models.CASCADE
,表示当与外键相关的记录被删除时,将删除所有相关的记录。大家可以根据自己的需求选择合适的选项。