我有下一個欄位的模型:
some_field = ForeignKey('self', on_delete=PROTECT, blank=true, null=true, editable=false)
這個領域的存在和它的作用是什么?我也不能洗掉這個模型 id adminpanel 的 obj,因為它說“你不能洗掉 obj A,因為需要洗掉下一個受保護的 obj:obj A”
在這個 some_field 中這樣做的原因是什么?
uj5u.com熱心網友回復:
您無法在管理面板中洗掉此欄位/物件,因為它是外鍵。一個資料可能會在另一個表中鏈接到它。所以為了洗掉這個物件,你需要洗掉這個外鍵鏈接的表中所有可用的相關物件。您可以在此處閱讀有關關系的更多資訊
https://docs.djangoproject.com/en/3.2/topics/db/examples/many_to_one/
uj5u.com熱心網友回復:
如果您要洗掉的物件是通過外鍵關系參考的,Django 會阻止您洗掉它,因為您設定了: on_delete=PROTECT。
如果要允許洗掉,則還必須洗掉相關物件。如果你想要這種行為:
from django.db.models import CASCADE
some_field = ForeignKey('self', on_delete=CASCADE, blank=true, null=true, editable=false)
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/358098.html
標籤:Python sql 姜戈 django-orm
上一篇:根據特定條件查找重復值
下一篇:在組件Ionic中重新加載資料
