missing 1 required positional argument: 'on_delete'

設置外鍵,做數據遷移時出現這個問題

 

 

 

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章