我正在浏览记录,然后我想在浏览返回结果时执行特定代码。
这是我的代码:
sub = self.pool.get('subscription.subscription').search(cr,uid,[('partner_id','=',partner.id),('active','=',True)])
if sub:
mtp.send_mail(cr, uid, level.email_template_id.id, partner.id, context=ctx)
但它不起作用,在评估if
条件时,会引发异常:
NotImplementedError: Iteration is not allowed on browse_record(res.partner, 15918)
我不明白,因为我没有通过检查结果是否存在来迭代结果,也没有调用__iter__
方法。
感谢您的帮助
干杯
答案 0 :(得分:1)
在一般情况下,问题是您只使用一个ID调用浏览方法,而不是ID列表,因此返回值只是一个记录,而不是记录列表,因此不可迭代。
答案 1 :(得分:0)
ids 可以删除ID列表或数字ID。
在后一种情况下, browse 返回单个记录,不可迭代,而不是可迭代的记录集合。
解决方案是确保id是一个列表。
在方法定义之后添加此项。
if not isinstance(ids, list):
ids = [ids]