У меня сейчас 4 модели AbstractComponent
, Component1
, Component2
и Component3
.Модели Component
наследуются от AbstractComponent
и имеют свои собственные определенные поля, как показано ниже:
class AbstractComponent(BaseModel):
part_number = models.CharField(max_length=512)
manufacturer = models.CharField(max_length=512)
class Component1(AbstractComponent):
type = models.CharField(max_length=512)
class Component2(AbstractComponent):
lifecycle_hours = models.FloatField(default=0)
class Component3(AbstractComponent):
hardware_version = SemverField(blank=True, null=True)
Я хочу иметь возможность создать иерархическую структуру, в которой любой из компонентов может быть родительским для другогосоставная часть.По сути, любой компонент может состоять из нескольких компонентов, и для его моделирования я хочу иметь поле для компонентов, которое позволяет мне знать его родительский компонент, если он есть.
Как лучше всего это реализовать?Я знаю, что у Django есть GenericForeignKey
и GenericRelation
для связи нескольких моделей, но я не мог понять, как использовать их для моего конкретного случая использования.
Мне бы хотелось иметь возможность использовать DRF django для добавления / удаления родительского элемента для компонента.