【问题标题】:MongoEngine 0.5: RuntimeError: maximum recursion depth exceeded while calling a Python objectMongoEngine 0.5:RuntimeError:调用 Python 对象时超出最大递归深度
【发布时间】:2011-12-01 04:25:37
【问题描述】:
    >>> from mongoengine import *
    >>> connect('foo')
    >>> class Foo(Document):
    ...   bar = ListField(ReferenceField('Foo'))
    >>> a = Foo()
    >>> a.save()
    >>> b = Foo()
    >>> b.save()
    >>> a.bar.append(b)
    >>> a.save()
    >>> b.bar.append(a)
    >>> b.save()

导致“运行时错误:超出最大递归深度,而 在 MongoEngine 0.5 中调用 Python 对象。我该如何解决这个问题?

【问题讨论】:

    标签: python mongoengine


    【解决方案1】:

    这已在 dev 分支中修复 - 请更新。

    【讨论】:

    • 谢谢!知道何时发布此修复程序吗?
    • 0.5.1 已发布,但 0.5.2 有更好的修复,我今天会尝试解决这个问题!
    【解决方案2】:

    RTD --> http://mongoengine-odm.readthedocs.org/en/latest/guide/defining-documents.html#reference-fields

    要添加引用正在定义的文档的 ReferenceField, 使用字符串“self”代替文档类作为参数 到 ReferenceField 的构造函数。

    试试这个:

    class Foo(Document):
        bar = ListField(ReferenceField('self'))
    

    【讨论】:

      猜你喜欢
      • 2011-05-31
      • 2016-04-01
      • 2013-08-29
      • 1970-01-01
      • 2017-03-18
      • 2015-04-15
      • 2016-12-23
      • 2012-12-22
      • 1970-01-01
      相关资源
      最近更新 更多