ForeignKey使用子继承的类

时间:2011-03-24 03:23:08

标签: django django-models foreign-keys

我希望模型接受基类抽象类中的子类。可能吗?最好的办法吗?

class BaseClass(models.Model):  
    class Meta:  
        abstract = True  

class A(BaseClass):  
    ...

class B(BaseClass):  
    ...

class C(BaseClass):  
    ...

class Test(models.Model):  
    base = models.ForeignKey(BaseClass)

test_inst = Test.objects.get(something=something)
b_inst = B.objects.create()
test_inst.base = b_inst
test_inst.save()

此外,如果可以的话。那么有可能知道这个班级是什么类型的吗?在这个例子中,Test类中的基类必须知道它是B类。

1 个答案:

答案 0 :(得分:0)

抽象类没有后备存储,这意味着它没有PK,这意味着您无法与它建立关系。请改用generic foreign key