首页 > 其他分享 >odoo跳转页面

odoo跳转页面

时间:2023-03-07 09:34:22浏览次数:36  
标签:form self 跳转 视图 odoo 页面 id view

odoo跳转页面总结

odoo视图跳转我总结为一下几点:
1. 默认的封装了两个数据,不需要人工维护

模型名称(封装到即将跳转的视图的context的active_model属性中)
单据id(封装到即将跳转的视图的context的active_id属性中)

2. 返回了一个字典(两大作用)

第一个作用:
各种参数的配置指定要跳转的模型,以及跳转之后模型可做的操作,就比如说显示不显示编辑保存按钮之类的。

第二个作用:
传入context,进行视图之间参数值的交互。

3. 在所跳转之后的视图接收数据并进行渲染

所以,第一步是系统默认,不需要写
第二步如下:
触发函数指定将要跳转的页面

一般情况下跳转视图的必要参数(当然,name属性非必要)

def jump_to_page(self):
	# self.env.ref是获取xml的id
	view_id = self.env.ref('dy_stock.dy_picking_in_view_form').id
	_defaults = {
		'name': _('XXX单'), # 可以写一些描述性的语言作为视图标题
        'type': 'ir.actions.act_window', # 动作类型,默认为ir.actions.act_window
        'view_type': 'form', # 跳转时打开的视图类型
        'view_mode': 'tree,form', # 列出跳转过去允许使用的视图模式
        'context': '{'name': self.name}', # 给定的参数传递
        'target': 'current', # 有两个参数,current是在当前视图打开,new是弹出一个窗口打开
        'res_model': 'stock.picking', # 参考的模型名称
        'res_id': 'views_form', # 加载指定id的视图,但只在view_type为form时生效,若没有这个参数则会新建一条记录
        'view_id': view_id, # 指定视图的id,如果一个模块只有一个视图的时候可以忽略不计,但建议最好写入
        'views': [(view_id, 'form')], # 是一个(view_id,view_type) 的元组对列表,默认打开第一组的动作视图
    }

  

下面是我总结的基本上所有参数,可以查阅浏览

def jump_to_page(self):
	# self.env.ref是获取xml的id
	view_id = self.env.ref('dy_stock.dy_picking_in_view_form').id
	_defaults = {
		'name': _('XXX单'), # 可以写一些描述性的语言作为视图标题
        'type': 'ir.actions.act_window', # 动作类型,默认为ir.actions.act_window
        'view_type': 'form', # 跳转时打开的视图类型
        'view_mode': 'tree,form', # 列出跳转过去允许使用的视图模式
        'context': {'name': self.name}, # 给定的参数传递
        'limit': 80, # 如果是tree,指定一页所能显示的行数
        'target': 'current', # 有两个参数,current是在当前视图打开,new是弹出一个窗口打开
        'auto_refresh': 0, # 为1时在视图中添加一个刷新功能
        'auto_search':True, # 加载默认视图后,自动搜索
        'multi': False, # 视图中有个更多按钮时,若multi设为True, 按钮显示在tree视图,否则显示在form视图
        'res_model': 'stock.picking', # 参考的模型名称
        'res_id': 'views_form', # 加载指定id的视图,但只在view_type为form时生效,若没有这个参数则会新建一条记录
        'view_id': view_id, # 指定视图的id,如果一个模块只有一个视图的时候可以忽略不计,但建议最好写入
        'views': [(view_id, 'form')], # 是一个(view_id,view_type) 的元组对列表,默认打开第一组的动作视图
        'flags': {'initial_mode': 'edit'}, # 对视图面板进行一些设置,如{'form': {'action_button': True, 'options': {'mode': 'edit'}}}即对form视图进行的一些设置,action_buttons为True时调出编辑保存按钮,options’: {‘mode’: ‘edit’}时则打开时对默认状态为编辑状态
    }

  

第三步如下:
前端接收一些必要的参数并进行渲染
取出其他参数的信息格式

self.env.context.get('参数名称', False)

  

def get_context_values(self):
    active_model = self.env.context.get('active_model', False) # 获取跳转之前的视图模型
    active_id = self.env.context.get('active_id', False) # 获取跳转之前的单据id
    if active_model and active_id: # 很显然,当有值的时候,说明是从其他页面跳转过来的
        context_info = self.env[active_model].browse(active_id) # 取出跳转时传入的原视图的self信息

  

 

标签:form,self,跳转,视图,odoo,页面,id,view
From: https://www.cnblogs.com/pythonClub/p/17186957.html

相关文章

  • 关于Android Studio的Activity的页面跳转完成
    第一种方式Intentintent=newIntent();intent.setClass(this,MainActivity3.class);startActivity(intent);第二种方式Intentintent=newIntent();intent.setClas......
  • 利用Intent跳转来实现数据传输
    代码:发送Intentintent=newIntent(this,MainActivity2.class);//创建一个新的包裹,类似sessoinBundlebundle=newBundle();intuser_id=mHelper.findid(user_nam......
  • 14 odoo 默认主题颜色调整
    文件位置addons/web/static/src/scss/primary_variables.scss社区版颜色:$o-community-color:#00A09D;企业版颜色:$o-enterprise-color:#875A7B; ......
  • 17 如何使用Qweb开发一个页面
    odoo注重敏捷,但是同时也带来的问题我就是不够灵活,如果有一天你的boss让你做一个工作台,将其他模型的数据进行统计,并使用图表的形式进行展示。这时候该如何做呢?很明显odo......
  • 2 odoo 计算字段 中 inverse的使用
    计算字段默认不允许编辑增加了inverse后可以对该字段进行编辑,并在保存时执行inverse方法,举例:partner_id=fields.Many2one('res.partner')street=fields.Char(re......
  • 5 odoo 自定义界面
    本文以项目模块自定义工作台为例模块名称:my_projectodoo的自定义界面实现主要的两个工具:Qweb、js正式开始之前在需要自定义内容的模块中定义几个文件:static/js/proje......
  • 7 odoo12 全屏模块开发
    全屏功能开发:1定义web模板t-name=”WebFullScreen”,预置全屏和退出全屏的a标签,退出全屏默认隐藏<?xmlversion="1.0"encoding="UTF-8"?><templatexml:space="pre......
  • 【django-vue】登录注册模态框分析 登录注册前端页面 腾讯短信功能二次封装 短信验证
    目录昨日回顾csrf跨站请求伪造接口幂等性异常捕获今日内容1登录注册模态框分析Login.vueHeader.vue2登录注册前端页面复制2.0Header.vue2.1Login.vue2.2Register.vue3......
  • odoo报错:AttributeError: ‘_unknown‘ object has no attribute ‘id‘
    在开发中遇到的这个问题AttributeError:'_unknown'objecthasnoattribute'id'1、当在一个模块中写了一个many2one字段,例如a=fields.many2one('base.repair','基础......
  • Android intent跳转工具类
    /***进行页面跳转的工具**@authorchen.lin**/publicclassIntentUtil{privatestaticfinalStringIMAGE_TYPE="image/*";privatestaticfinalStr......