我想定义一个公共的文件库和方法。 但是我发现子文档在继承时不能定义它的自定义名称。 例如:
from mongoengine import *
class BaseInfo(Document):
account = StringField()
insert_time = IntField()
update_time = IntField()
meta = {'allow_inheritance': True}
class SonItem(Document, BaseItem):
age = IntField()
meta = {'collection': 'son_item'}
meta = {'allow_inheritance': True}
class GrandItem(Document, BaseItem):
age = IntField()
meta = {'collection': 'grand_item'}
这将导致错误:
^{pr2}$
如果你想要你的
BaseInfo
(不是应该是BaseItem
?)为了本质上是一个mixin类,您应该按照docs here将其定义为abstract
。在如果使用
allow_inheritance
将类指定为基类,则假定子类将位于同一个集合中。这样你就可以使用基来搜索对象,它也会正确地检索所有的子类。不能跨集合执行此操作。在相关问题 更多 >
编程相关推荐