我在这里要做的是用相同的
product_id
,并将其附加到
one2many
另一个视图中的字段
wizard
我得填一个
sale_order_line
在我的向导字段中使用此方法;
def default_get(self, cr, uid, fields, context=None):
if context is None: context = {}
res = super(sale_order_consolidation, self).default_get(cr, uid, fields, context=context)
picking_ids = context.get('active_ids', [])
active_model = context.get('active_model')
if not picking_ids or len(picking_ids) != 1:
return res
assert active_model in ('sale.order'),
picking_id, = picking_ids
picking = self.pool.get('sale.order').browse(cr, uid, picking_id, context=context)
items = []
packs = []
if not picking.order_line:
picking.do_prepare_partial()
for op in picking.order_line:
item = {
'ref': op.ref,
'product_id': op.product_id.id,
'name': op.name,
'product_uom_qty': op.product_uom_qty,
'product_uom': op.product_uom.name,
'price_standard': op.price_standard,
'price_unit': op.price_unit,
'discount_2': op.discount_2,
#'tax_id': op.tax_id.id,
'price_subtotal': op.price_subtotal,
}
#if op.product_id:
items.append(item)
for rec in items:
key = d['product_id']
# the right instruction to add QTY with the same products and append it to packs in order to update my one2many field
res.update(order_line_consolidation=items)
return res
我真正想要的是:
d = [{'product_id': "x" , 'price': 1 , 'Qty': 2},
{'product_id': "y" , 'price': 5 , 'Qty': 4},
{'product_id': "x" , 'price': 1 , 'Qty': 1},
{'product_id': "z" , 'price': 9 , 'Qty': 1},
{'product_id': "y" , 'price': 5 , 'Qty': 5}
]
结果:
d = [{'product_id': "x" , 'price': 1 , 'Qty': 3},
{'product_id': "y" , 'price': 5 , 'Qty': 9},
{'product_id': "z" , 'price': 9 , 'Qty': 1},
]
我实际上在寻找一种正确的方法,用相同的产品添加数量,并将其附加到包装中,以便更新我的one2many字段
谢谢你的帮助,致以最诚挚的问候。