0
我有一個Django 1.6模型結構,其中實例共享一個通用模型實例作爲子類。模型繼承中的狀態共享和刪除
在數據庫術語中,有一個A
一排B
一行,並使用parent_link
對IDS進行C
一行。
當調用C'
.delete()
行爲A
和C
被刪除但對於B
孤兒記錄。直接實例化A
並調用delete將級聯刪除到B
和C
實例。我怎樣才能以最簡單的方式確保刪除B
或C
的實例將刪除父級和同級狀態?
刪除A的實例會導致B和C的鏈接實例被刪除。刪除B會導致B和A刪除。刪除C會導致C和A刪除。
如何刪除任何A,B或C實例刪除所有其他實例,而不管正在調用實例delete()?
作爲一個側面說明,所有實例似乎被刪除,所以在C'
調用.delete()
當它出現的基本狀態和B'
被刪除,但逸岸行了B'
將持續,直到另一個基本實例是不會出現在查詢在PK
對齊的位置創建。在那種情況下,B'
從死亡中重新出現。
這裏的類:
class A(models.Model):
# Fields here
class B(A):
a_ptr = models.OneToOneField(A, parent_link=True)
# More fields
class C(A):
a_ptr = models.OneToOneField(A, parent_link=True)
# More fields
# Code
shared_state = A()
shared_state.save()
sharer_b = B(a_ptr=shared_state.id)
charer_c = C(a_ptr=shared_state.id)
sharer_b.save()
sharer_c.save()
# Objective, this should delete all rows for the above?
sharer_c.delete()
我遇到的問題是1.6在哪裏有兩個實例共享一個公共實例(共享一個A的B和C實例)是刪除C刪除了A,但是B的行仍然存在,但孤兒是不可訪問的。 –