具有条件的“通用”组件连接的模型

时间:2019-01-31 19:32:43

标签: django django-models

我正在尝试创建一个代表完整“产品”的模型。

“产品”由使用连接器连接在一起的多个部分组成。一部分将“提供”连接器,另一部分将“要求”连接器

一般产品将至少由外壳和底板组成。底板本身可以提供处理器,但也可以提供可以将处理器插入其中的插槽。

外壳的尺寸将限制可在特定外壳中使用的底板的尺寸。背板可以具有多个(不同类型的)插槽,每个插槽可以承载一个处理器,但是处理器和插槽必须匹配。总共至少必须有一个处理器

有效产品的具体示例是

Housing A
 +- max width 100
Backplane B 
 + width 90
 + socket type A
 + socket type A
processor
 + processor model Y
 + socket type A

另一个有效产品将是

Housing B
 +- max width 50
Backplane C
 + width 50
 + processor model X <-- This is builtin to the backplane

最终有效产品

Housing B
 +- max width 50
Backplane C
 + width 50
 + processor model X <-- This is builtin to the backplane
 + daughterboard D
   +- socket type A
processor
 + processor model Y
 + socket type A

如何建模这些处理器和背板之间的依存关系,或者外壳尺寸和背板尺寸。我一直试图使它与GenericRelations和类型Provides / Requires的模型一起使用,但是却迷失了方向。

例如,我希望将特定的外壳添加到产品中之后,对可用底板的选择进行过滤,或者一旦选择了底板,就对可用处理器的选择进行过滤

有什么建议吗?

0 个答案:

没有答案