首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoEngine:文档在allowing_inheritance之后消失

MongoEngine:文档在allowing_inheritance之后消失
EN

Stack Overflow用户
提问于 2014-12-10 20:36:23
回答 1查看 255关注 0票数 1

我有一个以前不允许继承的MongoEngine文档。然后我想继承它,所以我设置了{allow_inheritance:True}。一旦我这样做了,在调用<myModel>.objects时,该模型的现有文档就不再出现了。如果我暂时设置{allow_inheritance:False},那么文档就会返回。为什么会这样?

我使用的是MongoEngine verison 0.8.7

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-12-10 20:51:33

弄明白了。使用allow_inheritance时,MongoEngine会在基文档中存储一个特殊的_cls字段,其中包含类名或派生类的名称。因此,对于您的BaseClass,它将存储"BaseClass"作为值,对于您的DerivedClass,它将存储"BaseClass.DerivedClass"作为值。但是,如果最初没有allow_inheritance集,它就没有这个特殊的_cls字段集。因此,在设置allow_inheritance之后,我必须手动进入mongo字段(而不是通过mongoengine),执行一个update来添加带有BaseClass值的_cls字段,然后文档重新出现。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27410334

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档