我有以下内容:
shipment_obj = self.pool.get('stock.picking.in').browse(cr, uid, context.get('active_id'))
这返回正确的对象,我可以访问属性,但是当我访问O2m字段“move_lines”时,它返回None对象而不能迭代。
我是否需要特殊的方式来访问特定传入货物的产品?
这是现有的OpenERP:
'move_lines': fields.one2many('stock.move', 'picking_id', 'Internal Moves', states={'done': [('readonly', True)], 'cancel': [('readonly', True)]}),
'product_id': fields.related('move_lines', 'product_id', type='many2one', relation='product.product', string='Product'),
答案 0 :(得分:0)
stock.picking.in
,stock.picking.out
和stock.picking
实际上是同一个表stock_picking
,stock.picking
被视为stock.picking.in
和{stock.picking.out
的基础{1}}。我认为这个功能仍然有一些问题,并且在openerp v8中解决了。所以当你需要浏览对象时,无论你是在浏览stock.picking
还是stock.picking.in
,都要使用stock.picking.out
答案 1 :(得分:0)
使用时
shipment_obj = self.pool.get('stock.picking.in').browse(cr, uid, context.get('active_id'))
在这里你将获得一个浏览记录列表,你可以访问one2many字段move_lines,如
for shipment_id in shipment_obj:
move_lines = shipment_id.move_lines
在这里,您将获得列表中每条记录的move_lines ...
答案 2 :(得分:0)
需要添加它来解决问题:
if context is not None and context.get('active_id'):
这是我认为调用方法不需要检查上下文和active_id的方式,因为总会有上下文和active_id,我错了。