如何解决使用 def __str__(self) 调用 Python 对象时超出了最大递归深度:当我删除内联表单对象时
当我尝试删除 Django 管理中的内联表单之一时,我遇到了最大递归深度超出...错误。
这是我的模型:
# First stack df and df2
df,df2 = df.stack(),df2.stack()
# Then add df2 to df as a column
df2['c'] = df2
# Now unstack
df2 = df2.unstack()
问题似乎出在class Correction_Factors(models.Model):
Treatment_unit= models.ManyToManyField(Unit,blank=False)
def __str__(self):
return u",".join([a.name for a in self.Treatment_unit.all()])
。创建内联表单时未发生错误。当我开始删除一个内联表单时,它才出现。
我尝试切换到 self.Treatment_unit.all()
但它没有返回我期望的结果。返回的文本看起来像“Correction_Factors object (23)”,没有详细信息。
注意def __Unicode__(self):
不存在延迟问题。我在 Django 2.2.18 和 python 3.9.2
def __Unicode__(self):
解决方法
我猜测问题与此错误消息有关:
File "C:\Users\mmetwaly\AppData\Local\Programs\Python\Python39\lib\site-packages\
django\db\models\fields\related_descriptors.py" in __init__
838. raise ValueError('"%r" needs to have a value for field "%s" before '
我会在那里放置一个断点,然后运行调试器来尝试查看发生了什么。
如果您创建了一组最少的代码来演示问题,然后完整地发布该代码,那么帮助您会更容易。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。