可以参考采购单的右侧按钮的写法。
简单讲,就是先通过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值。