MongoEngine 0.5:运行时错误:调用 Python 对象时超出最大递归深度

0 投票
2 回答
837 浏览
提问于 2025-04-17 03:41
    >>> 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对象时超过了最大递归深度”。我该怎么解决这个问题呢?

2 个回答

0

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

如果你想添加一个引用字段,这个字段指向正在定义的文档,可以在引用字段的构造函数中用字符串 'self' 来代替文档类。

试试这个:

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

这个问题已经在开发分支上修复了 - 请更新一下。

撰写回答