【问题标题】:MongoEngine (python) - Extending the document class not workingMongoEngine (python) - 扩展文档类不起作用
【发布时间】:2021-08-26 10:27:20
【问题描述】:

我正在尝试扩展 Document 类的基本功能,如下所示:

class DocumentExtended(Document):
    meta = {'allow_inheritance': True}


class User(DocumentExtended):
    name = StringField()


User(name="John Smith").save()

目的是我想在DocumentExtended 中添加一些额外的方法(但为简洁起见,我省略了这些方法)

问题是文档没有被保存。

如果我这样做

class User(Document):
    name = StringField()

User(name="John Smith").save()

它确实被保存了,所以我知道它应该可以工作

为了能够扩展mongoengine.Document能够将模型保存到数据库中,我需要做一些奇怪的技巧吗?

【问题讨论】:

  • okai 我刚刚刷新了 Robo3T 中的收藏列表,现在我看到了一个名为 document_extended 的收藏,所以它正在被保存……所以问题变成了如何在没有它的情况下扩展 Document 类被视为模特

标签: python mongodb mongoengine


【解决方案1】:

经过 2 小时的不理解,我终于阅读了文档

DocumentExtended 类必须设置meta = {'abstract': True}

class DocumentExtended(Document):
    meta = { 'abstract': True }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多