Python 如何在Django中访问模型的父抽象类

Python 如何在Django中访问模型的父抽象类,python,django,class,inheritance,Python,Django,Class,Inheritance,(使用Dajngo1.9和python 2.7) 所以我有一个抽象类和几个子类。看起来是这样的: class Node(models.Model): [...] class Meta: abstract = True class Individual(Node): [...] class Company(Node): [...] class Media(Node): [...] class Share(models.Mod

(使用Dajngo1.9和python 2.7)

所以我有一个抽象类和几个子类。看起来是这样的:

class Node(models.Model):

    [...]
    class Meta:
        abstract = True


class Individual(Node):
    [...]


class Company(Node):
    [...]


class Media(Node):
    [...]


class Share(models.Model):
    share = models.FloatField(null=True)

    child_content_type = models.ForeignKey(ContentType, related_name='child')
    child_object_id = models.PositiveIntegerField()
    child = GenericForeignKey('child_content_type', 'child_object_id')

    parent_content_type = models.ForeignKey(ContentType, related_name='parent')
    parent_object_id = models.PositiveIntegerField()
    parent = GenericForeignKey('parent_content_type', 'parent_object_id')
assert child.inherited_class.name == 'node'
assert parent.inherited_class.name == 'node'
事实上,共享的子对象和父对象可以接受任何模型。因此,我想实现一个扩展的save()方法(用于Share),该方法将检查子节点和父节点是否都从节点继承

我在找的东西可能是这样的:

class Node(models.Model):

    [...]
    class Meta:
        abstract = True


class Individual(Node):
    [...]


class Company(Node):
    [...]


class Media(Node):
    [...]


class Share(models.Model):
    share = models.FloatField(null=True)

    child_content_type = models.ForeignKey(ContentType, related_name='child')
    child_object_id = models.PositiveIntegerField()
    child = GenericForeignKey('child_content_type', 'child_object_id')

    parent_content_type = models.ForeignKey(ContentType, related_name='parent')
    parent_object_id = models.PositiveIntegerField()
    parent = GenericForeignKey('parent_content_type', 'parent_object_id')
assert child.inherited_class.name == 'node'
assert parent.inherited_class.name == 'node'
(或使用ocurse的子内容类型)

使用: