2011-03-24 104 views
0

我想要一個模型接受來自基類抽象類的子類。可能嗎?最好的方法來做到這一點?使用子類繼承類的外鍵

 
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類的。

回答

0

抽象類沒有後備存儲,這意味着它沒有PK,這意味着你不能有一個關係它。改爲使用generic foreign key