我看不出這有什么問題
class Agenda(models.Model):
...
class AgendaResource(PolymorphicModel):
agenda = models.ForeignKey(
Agenda, related_name="resources", on_delete=models.CASCADE
)
comment = models.TextField(null=True)
class PreemptiveMeasureResource(AgendaResource):
resource = models.ForeignKey(
PreemptiveMeasure, on_delete=models.SET_NULL, null=True
)
...
當我嘗試洗掉議程時,即Agenda.objects.get(pk=2).delete()我遇到了這個問題:
update or delete on table "school_health_agendaresource" violates foreign key constraint "school_health_preemp_agendaresource_ptr_i_222e2e2c_fk_school_he" on table "school_health_preemptivemeasureresource"
DETAIL: Key (id)=(2) is still referenced from table "school_health_preemptivemeasureresource"
什么我不明白?我猜這與繼承有關?
uj5u.com熱心網友回復:
這是一個問題django-polymorphic,請參閱此處、此處和此處的問題。
您可以嘗試將以下添加到您的AgendaResource模型中作為解決方法:
class AgendaResource(PolymorphicModel):
...
non_polymorphic = models.Manager()
class Meta
base_manager_name = 'non_polymorphic'
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/364053.html
上一篇:如何在django中通過ajax單擊功能后從資料庫回傳相關值?
下一篇:Django回圈遍歷未顯示的專案
