基于领域将一个模型关联到多个模型

Relating one model to multiple models based on field

以下是模型的简要说明:

是否可以在数据存储中对类似的东西进行建模?我需要模型 A 的状态独立于任何模型 B,但是当我查看模型 B 时,我需要知道模型 B 所代表的模型 A 的状态应该是什么。

我目前实现这一目标的方法是让模型 B 具有表示不同模型 A 的字符串字段,字段名称是模型 A 的名称,字段值是模型 A 的状态应该在。

这可行,但是它是完全静态的,并且需要在模型 A 的数量发生变化时手动将字段添加到模型 B 中。我正在寻找解决此问题的动态方法。

我希望这不会太混乱,如果需要,请要求更多说明。

您可以为此使用参考属性:

class A(db.Model):
    state = db.ReferenceProperty(collection_name="equipment")

创建 A 时,将 state 属性 设置为相应的 B 实体。

这还会在名为 equipmentB 实体中创建一个 属性,可用于获取引用特定 B 的所有 A 实体].

假设您在变量 broken 中有一个 B 损坏设备的实体。破装备都可以这样弄

broken.equipment.get()

这也适用于 ndb,但细节略有不同,您需要查看相关文档。