OpenERP - 评估object.browse(...)结果时出现NotImplementedError

0 投票
2 回答
801 浏览
提问于 2025-04-17 21:06

我正在浏览一些记录,然后我想在浏览返回结果时执行特定的代码。

这是我的代码:

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。因此返回的结果只有一条记录,而不是一组记录,所以这个结果是不能被循环处理的。

撰写回答