По сути, у меня есть модель, в которой я создал суперкласс, которым обладают многие другие классы, и затем у каждого из этих классов есть некоторые уникальные особенности, которые отличаются друг от друга. Допустим, класс A является суперклассом, а классы B, C и D являются потомками этого класса.
Как класс B, так и класс C могут иметь кратные классы D, однако я видел, что лучше поместить отношение внешнего ключа в класс D, который затем ссылается на его родительский класс. Теперь в других языках я мог бы просто сказать, что он имеет отношение ForeignKey к классу A, и тогда язык распознает истинный тип классов. Тем не менее, я не думаю, что так работает с Python.
Каков наилучший рекомендуемый способ решения этой проблемы?
РЕДАКТИРОВАТЬ: Вот примерно то, что я имею в виду ...
class A(models.Model):
field = models.TextField()
class B(A):
other = <class specific functionality>
class C(A):
other2 = <different functionality>
class D(A):
#I would like class D to have a foreign key to either B or C, but not both.
По сути, класс B и класс C имеют несколько классов D. Но определенный класс D принадлежит только одному из них.