Python Openerp NotImplementedError:browse_记录(stock.move,159275)上不允许迭代

Python Openerp NotImplementedError:browse_记录(stock.move,159275)上不允许迭代,python,function,iteration,openerp,wizard,Python,Function,Iteration,Openerp,Wizard,我正在浏览记录,如果浏览返回结果,我想执行特定的代码 这是我的密码: def create_update_date(self, cr, uid, ids, context=None): _log.info ('this is method to create a MO') _log.info (context) picking_obj = self.pool.get('stock.picking') move_obj = self

我正在浏览记录,如果浏览返回结果,我想执行特定的代码

这是我的密码:

 def create_update_date(self, cr, uid, ids, context=None):
        _log.info ('this is method to create a MO')
        _log.info (context)
        picking_obj = self.pool.get('stock.picking')
        move_obj = self.pool.get('stock.move')
        for stock in self.browse(cr, uid, ids, context=None):
            for  wiz in picking_obj.browse(cr, uid, stock.stock_id.id, context=None):
                date_pick = stock.date
                for wizs in wiz.move_lines:
                    move_obj.write(cr,uid,wizs,{'date_expected':date_pick})
但它不起作用,在评估if条件时,会引发异常:

NotImplementedError: Iteration is not allowed on browse_record(stock.move, 159275)

要解决此问题,请在
for
循环之前添加以下内容:

if not isinstance(ids, list):
    ids = [ids]
问题是,
ids
可以是一个id列表或一个数字id

在后一种情况下,
browse
返回一条不可iterable的记录,而不是可iterable的记录集合。解决方案是确保
ids
是一个列表

问题的另一个可能原因是最后一个
write()
命令:如果
wizs
是一条记录,则写入操作需要一个ID。您可以尝试将其替换为:

move_obj.write(cr, uid, wizs.id, {'date_expected':date_pick})

我已经在我的模块上编写了脚本。但仍然是相同的错误代码。
NotImplementedError:browse\u记录(stock.move,159275)上不允许迭代。