TypeError: __init__() missing 1 required positional argument: 'on_delete'

報錯原因:外鍵的刪除沒有設值。

解決辦法:一般使用方式設置on_delete爲null,

blog = models.ForeignKey(Blog,verbose_name='博客',on_delete=models.SET_NULL)

關於別的屬性的介紹

  • CASCADE:這就是默認的選項,級聯刪除,你無需顯性指定它。
  • PROTECT: 保護模式,如果採用該選項,刪除的時候,會拋出ProtectedError錯誤。
  • SET_NULL: 置空模式,刪除的時候,外鍵字段被設置爲空,前提就是blank=True, null=True,定義該字段的時候,允許爲空。
  • SET_DEFAULT: 置默認值,刪除的時候,外鍵字段設置爲默認值,所以定義外鍵的時候注意加上一個默認值。
  • SET(): 自定義一個值,該值當然只能是對應的實體了

 

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