ODOO通过BUTTON返回一个ACTION,跳转到一个VIEW

可以参考Odoo采购单的右侧按钮的写法。

简单讲,就是先通过xmlid获取到action_id,继而获取到action,修改action的相关信息,然后将结果返回,即可以实现跳转。

 

1
2
3
4
5
6
7
8
9
10
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.

posted @   CrossPython  阅读(201)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
历史上的今天:
2019-03-08 selenium使用location定位元素坐标偏差
2019-03-08 截屏转成灰度图
2019-03-08 asyncio 学习
2019-03-08 Python cv2 OpenCV 中传统图片格式与 base64 转换
2019-03-08 Python文件读写、StringIO和BytesIO
2019-03-08 airtest 记录
2019-03-08 Python - mouse clicks and keystrokes on a background window
点击右上角即可分享
微信分享提示