设置外键,做数据迁移时出现这个问题
这个问题是由于django版本问题,之前我使用的是django1.9,
目前换到django2.2,on_delete 这个参数 在django2.0之前是默认的
on_delete = models.CASCADE
django2.0后就不在默认了,需要开发者自己设置
比如:2.0之前我们写成这样
class UserInfo(models.Model):
username = models.CharFiled(max_length=32)
class UserToken(models.Model):
user = Model.OneToOneFiled('UserInfo')
token = models.CharFiled(max_length=64)
2.0 版本之后
class UserInfo(models.Model):
username = models.CharFiled(max_length=32)
class UserToken(models.Model):
user = Model.OneToOneFiled('UserInfo',on_delete=models.CASCADE)
token = models.CharFiled(max_length=64)
针对这个参数,还可以设置为其它值
on_delete有CASCADE、PROTECT、SET_NULL、SET_DEFAULT、SET()五个可选择的值
1、CASCADE:此值设置,是级联删除。
2、PROTECT:此值设置,是会报完整性错误。
3、SET_NULL:此值设置,会把外键设置为null,前提是允许为null。
4、SET_DEFAULT:此值设置,会把设置为外键的默认值。
5、SET():此值设置,会调用外面的值,可以是一个函数。