我目前有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
用于关联多个模型,但是我不知道如何在我的特定用例中使用它们。
我也希望能够使用django DRF为组件添加/删除父对象。