首页 > 解决方案 > 在计算域中循环调用 Python 对象时超出最大递归深度

问题描述

我需要制定一个计算方法来计算在导入excel工作表时着火的年份范围,如果它在没有依赖api的情况下onChange它在我手动记录到字段时运行良好,但在导入数据时也不起作用

我尝试了这段代码,但是当我将数据或内部记录导入字段时,我得到一个标题和下面的错误

class relate(models.Model):
_name = 'relate'
_rec_name = 'car'

@api.multi
@api.depends('start', 'end', 'ignore')
def years_rang(self):
    for rec in self:
        if rec.start and rec.end:
            record = [int(x) for x in range(int(rec.start), int(rec.end) + 1)]
            list = []
            if rec.ignore:
                try:
                    record.remove(int(self.ignore))
                    list = []
                except ValueError:
                    return {'warning': {'title': 'Warning!', 'message': "the Ignored year doesn't in range"}}
            for item in record:
                range_id = self.env['yearrange'].create({'name': str(item)})
                list.append(range_id.id)
            rec.rang = [(4, x, None) for x in list]
        pass
start = fields.Char(string="", required=False, )
end = fields.Char(string="", required=False, )
rang = fields.One2many(comodel_name="yearrange", inverse_name="product_id", store=True, string="Years" ,compute="years_rang")
ignore = fields.Char(string="Ignore", required=False, )


class yearrange(models.Model):
_name = 'yearrange'
_rec_name = 'name'

name = fields.Char()
product_id = fields.Many2one(comodel_name="relate")

调用 Python 对象时超出最大递归深度

标签: pythonpython-3.xloopsrecursionodoo

解决方案


推荐阅读