Django的ORM抽象类中的子依赖字段

时间:2012-11-04 21:35:37

标签: python inheritance django-models django-orm

我有这两个模型:

class Interface(models.Model):
    # fields
class OldInterface(models.Model):
    interface = models.ForeignKey(_base,related_name='old_versions')
    class Meta:
        abstract = True

由他们的“空间”和“功能”变体继承:

class SpatialInterface(Interface):
    # fields
class OldSpatialInterface(OldInterface):
    _base = SpatialInterface

class FunctionalInterface(Interface):
    # fields
class OldFunctionalInterface(OldInterface):
    _base = FunctionalInterface

当然我的代码失败了,因为_base没有在父模型中定义。

我的问题是:有没有办法或技巧告诉ForeignKey从子模型读取目标模型?

或者更一般地说,在父类中,有没有办法动态读取子类中的变量?

1 个答案:

答案 0 :(得分:0)

从我的研究中,我认为这是不可能的,因为syncdb解析models.py的方式:__init__()而不是调用,所以我没有找到任何办法根据子项动态设置ForeignKey目标。