MongoEngine 0.5:RuntimeError:调用 Python 对象时超出最大递归深度
Posted
技术标签:
【中文标题】MongoEngine 0.5:RuntimeError:调用 Python 对象时超出最大递归深度【英文标题】:MongoEngine 0.5: RuntimeError: maximum recursion depth exceeded while calling a Python object 【发布时间】: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 对象。我该如何解决这个问题?
【问题讨论】:
【参考方案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'))
【讨论】:
以上是关于MongoEngine 0.5:RuntimeError:调用 Python 对象时超出最大递归深度的主要内容,如果未能解决你的问题,请参考以下文章