2016-08-22 65 views
1

(使用dajngo 1.9和Python 2.7版)如何访问父抽象类模型在Django

所以我有几个子类的抽象类。它看起来像这样:

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') 

的事情是,实际上,共享的孩子,家长可以在任何模型所以我想实现一个扩展的save()方法(分享),将检查两个。子节点和父节点从节点继承。

我要找的东西可能看起来像这样的:

assert child.inherited_class.name == 'node' 
assert parent.inherited_class.name == 'node' 

(或ocurse的child_content_type

回答