設置外鍵,做數據遷移時出現這個問題
這個問題是由於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():此值設置,會調用外面的值,可以是一個函數。