首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算mongoengine ListField元素

计算mongoengine ListField元素
EN

Stack Overflow用户
提问于 2013-08-12 14:13:42
回答 2查看 1.5K关注 0票数 2

我很难用MySQL将我的模型从标准Django orm迁移到MySQL

我有以下模型,在旧结构中工作得很好:

代码语言:javascript
复制
class Place(Document):

    name    = StringField()
    acronym = StringField()

    parent = ReferenceField('self')
    hierarchy = ListField(ReferenceField('self'))
    hierarchy_size = IntField()

    @classmethod
    def preSave(instance, sender, **kwargs):
        instance.hierarchy_size = len(instance.hierarchy)

signals.pre_save.connect(Place.preSave, sender=Place)

但是,在使用新的mongoengine时,我面临着问题,无法像以前那样访问对象层次结构大小。接收:

代码语言:javascript
复制
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/awesome_user/workspace/awesome_project/project/models.py", line 728, in importPlacesFromMySQL
    myCountry.save()
  File "/Users/awesome_user/workspace/awesome_project/site_env/lib/python2.7/site-packages/mongoengine/document.py", line 220, in save
    signals.pre_save.send(self.__class__, document=self)
  File "/Users/awesome_user/workspace/awesome_project/site_env/lib/python2.7/site-packages/blinker/base.py", line 267, in send
    for receiver in self.receivers_for(sender)]
  File "/Users/awesome_user/workspace/awesome_project/project/models.py", line 804, in preSave
    instance.hierarchy_size = len(instance.hierarchy)
TypeError: object of type 'ListField' has no len()

有没有人知道如何访问实例的属性,比如我的例子中的length

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-08-12 14:21:42

您在定义preSave类方法时出错了。您正在尝试从hierarchy ListField中从Place类(而不是实例)获取len。这是因为您使用的是方法的第一个参数-它不是一个实例,而是一个类本身。改用第三个参数:

代码语言:javascript
复制
@classmethod
def preSave(cls, sender, document, **kwargs):
    document.hierarchy_size = len(document.hierarchy)
票数 2
EN

Stack Overflow用户

发布于 2020-11-29 05:12:23

len(object.field)将检索所有子文档,然后计数。如果只需要数组的长度而不检索所有文档,则可以使用len(object.to_mongo()["field"])

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

https://stackoverflow.com/questions/18189246

复制
相关文章

相似问题

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