Django ORM树模型结构

时间:2018-10-26 17:22:10

标签: django django-models django-rest-framework django-serializer

我目前有4个模型AbstractComponentComponent1Component2Component3Component模型继承自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有GenericForeignKeyGenericRelation用于关联多个模型,但是我不知道如何在我的特定用例中使用它们。

我也希望能够使用django DRF为组件添加/删除父对象。

0 个答案:

没有答案