lot = fields.Many2one('stock.production.lot','lot')
我希望将此字段作为参数传递给继承的方法(onchange on quantity)
def product_id_change(self, cr, uid, ids, pricelist, product, qty=0,
uom=False, qty_uos=0, uos=False, name='', partner_id=False,
lang=False, update_tax=True, date_order=False, packaging=False,
fiscal_position=False, flag=False, lot=False,context=None):
res = super(order_line, self).product_id_change(cr, uid, ids,
pricelist, product,
qty,uom, qty_uos,
uos, name, partner_id,
lang, update_tax,
date_order, packaging,
fiscal_position,
flag, context=context)
if product:
print "----------------------------------------------"
print lot
print "----------------------------------------------"
# res['value']['changement_prix'] = lot.change_prix
# res['value']['old_price'] = res['value']['price_unit']
# res['value']['price_unit'] = res['value']['old_price'] + lot.change_prix
return res
但我打印的所有内容都是假的 所以我想知道如何通过批次作为这个函数的参数 日Thnx
答案 0 :(得分:0)
你不能在函数中以这种方式传递新的参数。
它调用对象的超级方法,它也会在超级方法中产生问题。所以要么你可以在xml方面的上下文中传递批次,
喜欢
<field name="product_id"
context="{'partner_id':parent.partner_id,
'quantity':product_uom_qty,
'pricelist':parent.pricelist_id,
'uom':product_uom, 'company_id': parent.company_id,
'lot': lot}" <======
groups="base.group_user"
on_change="product_id_change(parent.pricelist_id, product_id, product_uom_qty, False, product_uos_qty, False, name, parent.partner_id, False, True, parent.date_order, False, parent.fiscal_position, False, context)"/>
因此,在上下文中,您可以通过该批次。
lot = context.get('lot')
在python方面,你可以从上下文中获得并完成代码。
否则你必须在新模块中覆盖onchange的整个功能 在xml方面改变onchange的争论
希望这会对你有所帮助。
答案 1 :(得分:0)
嗯,我不能通过上下文得到很多 所以我在product.product中创建了一个看不见的字段 并保存在那里。 比以后通过浏览我的产品回来 thnx