Python 如何在Django中访问模型的父抽象类
(使用Dajngo1.9和python 2.7) 所以我有一个抽象类和几个子类。看起来是这样的: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
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的子内容类型)使用: