ForeignKey, используя дочерние унаследованные классы - PullRequest
0 голосов
/ 24 марта 2011

Я хочу, чтобы модель принимала дочерние классы из базового абстрактного класса.Является ли это возможным?Лучший способ сделать это?

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 голосов
/ 24 марта 2011

Абстрактный класс не имеет резервного хранилища, что означает, что у него нет PK, что означает, что вы не можете иметь к нему отношение. Вместо этого используйте общий внешний ключ .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...