OpenERP - NotImplementedError评估object.browse(...)的结果

时间:2014-03-06 11:25:01

标签: python orm openerp

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

这是我的代码:

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 :(得分:1)

在一般情况下,问题是您只使用一个ID调用浏览方法,而不是ID列表,因此返回值只是一个记录,而不是记录列表,因此不可迭代。

答案 1 :(得分:0)

ids 可以删除ID列表或数字ID。

在后一种情况下, browse 返回单个记录,不可迭代,而不是可迭代的记录集合。

解决方案是确保id是一个列表。

在方法定义之后添加此项。

if not isinstance(ids, list):
    ids = [ids] 
相关问题