【问题标题】:maximum recursion depth exceeded - Django超出最大递归深度 - Django
【发布时间】:2017-08-09 12:07:47
【问题描述】:

这是我在 django 中创建对象时遇到的错误。我知道在为该特定模型定义 unicode 时存在错误。但是,我不知道如何在 django 中为 ManyToManyField 定义一个。

以下是相关截图 '

【问题讨论】:

  • 您能否在屏幕截图中的黄色区域下方包含回溯?没有它,就很难找出问题所在。查看您的模型,数据设计似乎有点偏离 - 至少其中一个 ManyToMany 字段感觉应该是 ForeignKey。无论哪种方式,您都不想将curruser 放在__unicode__ 方法中,因为这不会有有用的价值——它是模型管理器,而不是字符串。我想你想要一个ForeignKey 那里。
  • @Tom,谢谢。有效。我刚刚将其中一个字段更改为 ForeignKey 关系并且它起作用了:)

标签: python django django-models django-queryset


【解决方案1】:

我今天遇到了同样的“超出最大递归深度”问题,我意识到我的 IDE 为我的模型自动生成了这个方法。

def __str__(self):
    return super(MyModel, self).__str__()

当方法/函数在没有任何控制的情况下触发调用循环时,这是可能引发最大递归的主要原因之一。

这可能发生在购买时。unicode 从 UserProfile 中请求 unicode,而 UserProfile 再次请求描述(unicode 或 str,我希望,来自 django 关系,它基本上是一个 django 字段,来自 django/db/models/fields)

【讨论】:

    猜你喜欢
    • 2011-03-31
    • 2013-02-20
    • 2013-12-01
    • 2011-09-19
    • 2019-01-18
    • 2013-03-03
    • 2017-03-24
    • 2011-12-31
    相关资源
    最近更新 更多