odoo中页面跳转相关
在添加自定义服务器动作 “复制全部”后发现直接创建了新的记录,并且直接进入到form保存完的状态。
如何解决:
1 2 3 4 5 6 7 8 9 10 | if yourself_obj_copy: return { 'type' : 'ir.actions.act_window' , 'view_type' : 'form' , 'view_mode' : 'form' , 'res_model' : '你的模块名.模型名' , 'res_id' : yourself_obj_copy.id, 'context' : self.env.context, 'flags' : { 'initial_mode' : 'edit' }, } |
加上上方红色部分,就可以默认进入form视图的编辑状态。
这里需要注意一下:odoo自带的服务器动作 -- 复制 其实也不是复制,而是创建了一份新的直接保存了,
即使你点击复制进入新的编辑界面,这时不点“保存”,直接“丢弃”,其实是没有效果的,这条记录已经在点击“复制”的时候创建了。
页面跳转可以参考如下文章:
在odoo视图中有时点击按钮需要跳转到另一个视图,此时有如下参数需要注意
系统的默认值:
1 2 3 4 5 6 7 8 9 10 11 | _defaults = { 'type' : 'ir.actions.act_window' , 'view_type' : 'form' , 'view_mode' : 'tree,form' , 'context' : '{}' , 'limit' : 80, 'target' : 'current' , 'auto_refresh' : 0, 'auto_search' :True, 'multi' : False, } |
# type: 动作类型,默认为ir.actions.act_window
# view_type: 跳转时打开的视图类型
# view_mode: 列出允许使用的视图模式
# context: 给目标视图传参数,如默认搜索之类的,如{‘search_default_group_assign’:1}
# limit: 列表视图一页的记录数
# target: 打开新视图的方式,current是在本视图打开,new是弹出一个窗口打开
# auto_refresh:为1时在视图中添加一个刷新功能
# auto_search:加载默认视图后,自动搜索
# multi:视图中有个更多按钮,若multi设为True, 更多按钮显示在tree视图,否则显示在form视图
以下内容是一些需特别注意的参数
# res_model:想打开视图的对应模块
# res_id: 参数为id,加载指定id的视图,但只在view_type为form时生效,若没有这个参数则会新建一条记录
# view_id: 参数是id,若一个模块有多于>1个视图时需要指定视图id,可根据视图名称去ir.ui.view模块搜索
# views:是(view_id,view_type) 元组对列表,第一组是动作默认打开的视图
# flags: 对视图面板进行一些设置,如{‘form’: {‘action_buttons’: True, ‘options’: {‘mode’: ‘edit’}}}即对form视图进行一些设置,action_buttons为True时调出编辑保存按钮,options’: {‘mode’: ‘edit’}时则打开时对默认状态为编辑状态
我参考的是 https://www.cnblogs.com/hellojesson/p/8405539.html
下面说下我在写这个东西时遇到的坑
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | def repair(self): view_id = self.env.ref( 'equipment.view_equipment_create_repair_form' ).id return { 'type' : 'ir.actions.act_window' , 'view_type' : 'form' , "view_mode" : "form" , 'res_model' : 'equipment.repair' , 'target' : 'new' , # 'view_id': view_id, 'views' : [[view_id, "form" ]], 'context' : { 'form_view_ref' : 'equipment.view_equipment_create_repair_form' }, } 这个是我复制别人的,但由于刚步入odoo中 习惯性在方法前写@api.one,所以代码好好的,debug也走完了,但效果就是出不来,第二天我们头儿才帮我找到这个问题。 把这个分享出去,好让更多的人,少废点脑细胞。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下