Django 模型继承中的状态共享与删除

Django 模型继承中的状态共享与删除,django,django-models,django-1.6,Django,Django Models,Django 1.6,我有一个Django 1.6模型结构,其中实例作为子类共享一个公共模型实例 在数据库术语中,有一行用于a一行用于B和一行用于C使用ID的parent\u链接 在C'上调用.delete()时,A和C的行被删除,但B有一个孤立记录。直接实例化A并调用delete将把删除级联到B和C实例。如何以最简单的方式确保删除B或C的实例将同时删除父级和同级状态 删除A的实例会导致删除B和C的链接实例。B的删除导致B和A的删除。C的删除导致C和A的删除 如何使删除任何A、B或C实例都会删除所有其他实例,而不管

我有一个Django 1.6模型结构,其中实例作为子类共享一个公共模型实例

在数据库术语中,有一行用于
a
一行用于
B
和一行用于
C
使用ID的
parent\u链接

C'
上调用
.delete()
时,
A
C
的行被删除,但
B
有一个孤立记录。直接实例化
A
并调用delete将把删除级联到
B
C
实例。如何以最简单的方式确保删除
B
C
的实例将同时删除父级和同级状态

删除A的实例会导致删除B和C的链接实例。B的删除导致B和A的删除。C的删除导致C和A的删除

如何使删除任何A、B或C实例都会删除所有其他实例,而不管调用的是instance 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中都起到了相同的作用。

我在1.6中遇到的问题是,两个实例共享一个公共实例(B和C实例共享一个a),删除C会删除a,但B的行仍然存在,但孤立为一个不可访问的行。