OpenERP - 评估object.browse(...)结果时出现NotImplementedError
我正在浏览一些记录,然后我想在浏览返回结果时执行特定的代码。
这是我的代码:
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__
方法。
谢谢你的帮助
祝好
2 个回答
0
ids 可以是一个 ID 列表,也可以是一个数字 ID。
如果是数字 ID 的话,browse 会返回一条记录,而不是一组可以逐个查看的记录。
解决办法就是确保 ids 是一个列表。
在方法定义后面加上这个。
if not isinstance(ids, list):
ids = [ids]
1
一般来说,问题在于你调用浏览方法时只用了一个ID,而不是一组ID。因此返回的结果只有一条记录,而不是一组记录,所以这个结果是不能被循环处理的。