首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不带_cls的PyMODM获取对象

不带_cls的PyMODM获取对象
EN

Stack Overflow用户
提问于 2020-11-17 23:17:33
回答 1查看 104关注 0票数 0

我有一个以前用不带_cls字段的文档填充的集合。

例如,现在我正在用这些类填充集合:

代码语言:javascript
复制
class SomeAnimal(MongoModel):
    ID = fields.CharField(primary_key=True, validators=[UUID])
    dob = fields.DateTimeField()

    class Meta:
        write_concern = WriteConcern(j=True)
        collection_name = COLLECTION_NAME


class Pet(Animal):
    name = fields.CharField(blank=True)

并且Pet.objects.all()只返回从此脚本(具有{'_cls':'Pet'}属性)添加的文档。

有没有可能用Pymodm获取这些文档,或者这种情况打破了使用ORM的所有意义,最好切换到pymongo?

EN

回答 1

Stack Overflow用户

发布于 2021-01-13 03:15:27

来自文档:这是如何工作的?对于每个允许继承的模型类,pymodm都会创建另一个隐藏字段_cls,用于存储文档引用的模型的类。这样,不同类型的模型可以并置在同一个集合中,同时保留类型信息。

如果我们不想将此_cls字段存储在文档中,该怎么办?这可以通过声明模型为最终模型来实现,这意味着它必须直接从MongoModel继承,并且不能被扩展:

代码语言:javascript
复制
class PageTheme(MongoModel):
    theme_name = fields.CharField()
    background_color = fields.CharField()
    foreground_color = fields.CharField()

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

https://stackoverflow.com/questions/64878041

复制
相关文章

相似问题

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