基于领域将一个模型关联到多个模型
Relating one model to multiple models based on field
以下是模型的简要说明:
- 模型A代表一件设备,有名称和状态
- 模型 B 代表许多模型 A 的特定状态
- 模型 B 应该与许多模型 A 相关,但仅适用于模型 A 的特定状态
是否可以在数据存储中对类似的东西进行建模?我需要模型 A 的状态独立于任何模型 B,但是当我查看模型 B 时,我需要知道模型 B 所代表的模型 A 的状态应该是什么。
我目前实现这一目标的方法是让模型 B 具有表示不同模型 A 的字符串字段,字段名称是模型 A 的名称,字段值是模型 A 的状态应该在。
这可行,但是它是完全静态的,并且需要在模型 A 的数量发生变化时手动将字段添加到模型 B 中。我正在寻找解决此问题的动态方法。
我希望这不会太混乱,如果需要,请要求更多说明。
您可以为此使用参考属性:
class A(db.Model):
state = db.ReferenceProperty(collection_name="equipment")
创建 A 时,将 state
属性 设置为相应的 B
实体。
这还会在名为 equipment
的 B
实体中创建一个 属性,可用于获取引用特定 B
的所有 A
实体].
假设您在变量 broken
中有一个 B
损坏设备的实体。破装备都可以这样弄
broken.equipment.get()
这也适用于 ndb
,但细节略有不同,您需要查看相关文档。
以下是模型的简要说明:
- 模型A代表一件设备,有名称和状态
- 模型 B 代表许多模型 A 的特定状态
- 模型 B 应该与许多模型 A 相关,但仅适用于模型 A 的特定状态
是否可以在数据存储中对类似的东西进行建模?我需要模型 A 的状态独立于任何模型 B,但是当我查看模型 B 时,我需要知道模型 B 所代表的模型 A 的状态应该是什么。
我目前实现这一目标的方法是让模型 B 具有表示不同模型 A 的字符串字段,字段名称是模型 A 的名称,字段值是模型 A 的状态应该在。
这可行,但是它是完全静态的,并且需要在模型 A 的数量发生变化时手动将字段添加到模型 B 中。我正在寻找解决此问题的动态方法。
我希望这不会太混乱,如果需要,请要求更多说明。
您可以为此使用参考属性:
class A(db.Model):
state = db.ReferenceProperty(collection_name="equipment")
创建 A 时,将 state
属性 设置为相应的 B
实体。
这还会在名为 equipment
的 B
实体中创建一个 属性,可用于获取引用特定 B
的所有 A
实体].
假设您在变量 broken
中有一个 B
损坏设备的实体。破装备都可以这样弄
broken.equipment.get()
这也适用于 ndb
,但细节略有不同,您需要查看相关文档。