Древовидная структура Django ORM - PullRequest
0 голосов
/ 26 октября 2018

У меня сейчас 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 для добавления / удаления родительского элемента для компонента.

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