【问题标题】:Allow Inheritance in Meta of Document允许在文档的元中继承
【发布时间】:2016-11-27 20:13:46
【问题描述】:

如果我有文件:

class First(Document):
    field1 = StringField()
    meta = {'allow_inheritance': True}

class Second(First):
    field2 = StringField()
    meta = {
        'indexes': ['field2']
    }

这行得通吗?我很好奇 Second 中的 meta 是否会覆盖 First 中的 allow_inheritance 并会破坏应用程序。它似乎在测试中有效,但我不确定如何处理。

【问题讨论】:

    标签: inheritance mongoengine


    【解决方案1】:

    是的,它会起作用。

    meta没有被覆盖,可以说会更新。

    当您从Second 模型实例化一个文档时,save() 将保存在first 集合中,并且在那一刻在first 集合中将创建field2 索引。

    更多详情:

    来自source codeDocument 类有一个 metaclass=TopLevelDocumentMetaclass,它将默认操作覆盖更改为更新,类似于 attrs["_meta"].update(attrs.get("meta", {}))

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-23
      • 1970-01-01
      • 2013-08-15
      • 2014-11-22
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多