0

我有以下内容:

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'),
4

3 回答 3

0

需要添加它来解决问题:

if context is not None and context.get('active_id'):

这是我认为调用该方法的方式,不需要检查上下文和active_id,因为总会有上下文和active_id,我错了。

于 2013-10-31T04:40:17.130 回答
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...

于 2013-10-30T12:56:44.427 回答
0

stock.picking.in,stock.picking.outstock.picking实际上是同一个表stock_picking并且stock.picking被认为是和 的stock.picking.in基础stock.picking.out。我认为这个功能还有一些问题,在 openerp v8 中已经解决了。所以当你需要浏览对象时,使用stock.picking是否stock.picking.in浏览stock.picking.out

于 2013-10-29T04:53:16.180 回答