ODOO通过BUTTON返回一个ACTION,跳转到一个VIEW
可以参考Odoo采购单的右侧按钮的写法。
简单讲,就是先通过xmlid获取到action_id,继而获取到action,修改action的相关信息,然后将结果返回,即可以实现跳转。
mod_obj = self.pool.get('ir.model.data')
dummy,action_id = tuple(mod_obj.get_object_reference(cr,uid,'purchase','purchase_rfq'))
action = self.pool.get('ir.actions.act_window').read(cr,uid,action_id,context=context)
action['context']={}
request = self.browse(cr,uid,ids[0],context=context)
if request.purchase_id:
action['domain']="[('id','=',"+str(request.purchase_id.id)+")]"
action['views']=[(False,"form")]
action['res_id']=request.purchase_id.id
return action
注意,返回的action是一个Dictionary的结果,而不是action对象,否则将不能跳转。
action['views']=[(False,"form")] views是action的一个属性,值为类似[(view_id,view_mode)]的格式,view_id为False,取默认的view值。
https://www.odoo.com/zh_CN/forum/bang-zhu-1/set-default-value-in-wizard-from-context-137612#:~:text=You%20need%20to%20pass%20%27default_%27%20prefix%20in%20context,set%20the%20default%20value%20when%20wizard%20will%20open.
浙公网安备 33010602011771号