В принципе, у меня есть модель, где я создал суперкласс, который разделяют многие другие классы, а затем каждый из этих классов имеет некоторые уникальные функции, которые отличаются друг от друга. Скажем, класс A является суперклассом, а классы B, C и D являются дочерними элементами этого класса.Наследование наследования модели Django и внешние ключи
Как класс B, так и класс C могут иметь кратность класса D, однако я видел, что лучше всего установить отношение внешнего ключа в классе D, которое затем относится к его родительскому классу. Теперь на других языках я могу просто сказать, что у него есть отношение ForeignKey к классу A, а затем язык распознает истинный тип классов. Тем не менее, я не думаю, что это так, как это работает с Python.
Каков наилучший способ решения этой проблемы?
EDIT: Вот примерно то, что я имею в виду ...
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 принадлежит только одному из них.
Не могли бы вы объяснить, почему вам нужно наследование? – Evgeny
Существует связанный с этим вопрос, есть некоторые хорошие ответы, которые могут помочь: https://stackoverflow.com/questions/1114767/django-model-inheritance-and-foreign-keys – Miranda