django2.2モデルクラスの互換性


必要性は外部キーを追加する際に導入されたモデルクラス

on_delete = models.CASCADE

例:
以前のバージョン:

名前= models.ForeignKey(' 名前' 
を入力 = models.ForeignKey(' タイプ'、verbose_name = ' 类别'

で置換します:

名前= models.ForeignKey(' 名前'on_delete = models.CASCADE
タイプ = models.ForeignKey(' タイプ'on_delete = models.CASCADE、verbose_name =を' 类别'

 

そうでない場合は、エラー:
例外TypeError:__init __()1つの欠落必要な位置引数'on_delete'

 


on_delete効果:外部キーがあれば関連付けられている対応するデータテーブルが削除され、その後、モデルクラスのデータを対処

django2.Xバージョンの前に、on_delete(デフォルト=「CASCADE」 )、CASCADEがデフォルト値で、後に更新する必要があります手動設定。




総選挙はまだCASCADEが。

あるon_delete の6種類のオプションは、CASCADEに加えて、セット()、SET_NULL、そこPROTECT sET_DEFAULT、DO_NOTHINGは


詳細on_deleteプロパティ:

CASCADE(カスケード削除):テーブルに関連付けられているデータを削除する場合、外部キーフィールドも削除させていただきます

PROTECT(保護モードを):エラーがスローされたとき、このオプションが削除された場合ProtectedError

SET( ):エンティティに対応するカスタム値

SET_NULL(ブランキング):関連テーブル内のデータが空白の外部キーを削除するには、当然のことながら、キーフィールドに加えて、ヌル、ヌル= Trueにすることができました

set_default(セットデフォルト):デフォルト値に設定する外部キーフィールドなので、外部キーの際の注意に加えて、デフォルト値の定義時に削除さ

DO_NOTHINGが乾燥するものではありません。

おすすめ

転載: www.cnblogs.com/jrri/p/11605015.html