首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

为odoo 13中的表单添加上下文。使用js

在odoo 13中为表单添加上下文,可以使用JavaScript来实现。上下文是一个字典,它可以在odoo的表单中传递额外的参数。通过在表单的JavaScript代码中使用this.getContext()方法,可以获取当前表单的上下文。

以下是一个示例代码,演示如何为odoo 13中的表单添加上下文:

代码语言:txt
复制
odoo.define('your_module_name.your_form_name', function (require) {
    "use strict";

    var FormController = require('web.FormController');
    var FormView = require('web.FormView');

    FormController.include({
        renderButtons: function ($node) {
            this._super.apply(this, arguments);
            var self = this;
            if (this.$buttons) {
                this.$buttons.on('click', '.your_button_class', function () {
                    var context = self.renderer.state.getContext(); // 获取当前表单的上下文
                    context.your_key = 'your_value'; // 添加自定义的上下文参数
                    self.do_action({
                        type: 'ir.actions.act_window',
                        res_model: 'your_model_name',
                        views: [[false, 'form']],
                        target: 'current',
                        context: context // 将上下文参数传递给新的动作
                    });
                });
            }
        }
    });

    FormView.include({
        init: function () {
            this._super.apply(this, arguments);
            this.controllerParams.disable_autofocus = true; // 禁用自动聚焦
        }
    });
});

在上述代码中,我们首先引入了web.FormControllerweb.FormView,然后通过FormController.include()FormView.include()来扩展odoo的表单控制器和视图。在renderButtons方法中,我们为一个自定义按钮添加了点击事件处理程序。在点击按钮时,我们获取当前表单的上下文,并添加自定义的上下文参数。然后,我们使用do_action方法创建一个新的动作,并将上下文参数传递给该动作。

请注意,你需要将your_module_name替换为你的模块名称,your_form_name替换为你的表单名称,.your_button_class替换为你自定义按钮的类名,your_key替换为你的自定义上下文参数的键名,your_value替换为你的自定义上下文参数的值,your_model_name替换为你的模型名称。

这是一个简单的示例,你可以根据自己的需求进行修改和扩展。如果你需要更多关于odoo的开发文档和示例,请参考腾讯云的odoo相关产品和产品介绍链接地址:腾讯云odoo产品介绍

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

odoo form表单视图添加chatter功能

实践环境 Odoo 14.0-20221212 (Community Edition) 需求描述 如图,给表单新增一个类似聊天窗口,当记录一些表单活动(本例自动记录当前记录状态变化) 需求实现 模型定义...odoo14\custom\estate\models\estate_property.py 需要继承mail.thread模型,并为需要追踪字段设置tracking属性,并设置属性值真值 #!...) # ...此处代码略 说明: mail.thread 模型,该模型类型models.AbstractModel,其定义文件 odoo14\odoo\addons\mail\...models\mail_thread.py,其字段命名均以message_开头 tracking 该属性True或数字时,打开针对该属性所属字段修改日志--当所属字段内容发生变化时,系统会将该字段变化前后值写入日志中...,定义在文件 odoo14\odoo\addons\mail\models\mail_activity.py,其字段命名均以activity_,对应,模型定义中_inherit 属性也需要添加该模块,

73720

JS如何使用隐藏控件表单添加参数

前言 在一些前端动态网页表单里,并不是所有的参数都需要填写或选择,有些需要隐藏起来,然后跟着小单一起提交传递给后台,发送到服务器端 那这个是怎么实现呢 示例展示 具体示例,可见 https://coder.itclan.cn.../fontend/js/24-hide-input-params/ 01 原生js 对于不显示在界面上元素,但在提交表单时,却又要携带上去,是有这种需求,比如用户修改某件商品信息时,商品id,商品...id并不是用户想要关心 但是这个id又是数据库表格标识,往往是一个必传字段,因此使用隐藏变量把这个参数隐藏起来,可以很好解决这个问题 具体如下代码所示 // 展示表单参数函数 function...var str = "表单将提交参数包括" // 定义字符拼接变量 // 拼接年份参数 str += '\n年份:'+document.forms[0].myyear.value...,有时是需要传给后端,传统方法,隐藏表单数据,然后在提交时,传递给后端,是一个比较常见操作

10.9K40

odoo 给列表视图添加按钮实现数据文件导入

> 说明:,其中estate_customer_tree下文javascript中定义组件,实现添加自定义按钮...> estate_customer_tree 组件定义 js实现 列表视图添加自定义上传数据文件按钮 odoo14\custom\estate\static\src\js\estate_customer_tree_upload.js...class属性值 替换estate.CustomerHiddenUploadForm在对应按钮视图模板中定义隐藏表单模版名称 替换EstateCustomerListView.buttons对应按钮视图模板中定义按钮模版名称...替换estate_customer_tree自定义全局唯一值 do_action Widget() 快捷方式(定义在odoo14\odoo\addons\web\static\src\js\core...,上下文节点命名属性将被设置属性元素值(如果已经存在则替换,如果不存在则添加) 注意:参考官方文档,t-extend这种继承方式继承方式,已废弃,笔者实践了最新继承方式,如下 <?

3.5K30

使用 Darkmode.js 网站添加深色模式

Darkmode.js 是由 Sandoche 开发开源代码库,目前项目托管于 Github;用户可以通过轻量级代码实现网站添加深色模式;除了默认切换方式,代码还提供了较为全面的自定义选项,用户可以根据自己需求进行切换...>         new Darkmode().showWidget(); 如果觉得加载慢,可以自己下载替换;或使用其他公共库 CDN 加速服务; 七牛云: https://cdn.staticfile.org.../Darkmode.js/1.4.0/darkmode-js.min.js cloudflare: https://cdnjs.cloudflare.com/ajax/libs/Darkmode.js/...darkmode--activated 样式类,你可以通过它来覆盖样式,添加自定义样式; 2、可以通过添加 darkmode-ignore 类来屏蔽你不想添加深色模式地方;或者直接页面元素添加...可以通过添加下面的代码解决;不过需要注意是,这个代码将会覆盖更多元素,比如图片。

3.5K20

js由弱变强之路,Flowjs添加编译过程

github开源地址: https://github.com/facebook/flow Facebook开发了一个名为Flow框架, javascript添加了编译过程, 可以让我们用类似java...强类型风格, 编写js语言, 使用方法非常简单, 以下是flow一些使用实例 初始化一个npm项目 // 新建一个文件夹 mkdir learn-flow // 进入文件夹 cd learn-flow...使用方法 原js代码: var userName = "zhaoolee"; var userAge = 22; 非破坏式写法(通过注释) 在项目learn-flow中新建一个user.js文件 //..., 这个相当于js原生类型(动态),写法如下 //@flow var nameOrAge /*: any*/ = "zhaoolee"; nameOrAge = 123; Array: 数组类型, 定义时..., 就不会报错, 这样就让工程维护和排错变得麻烦, 所以说Flow这种动态语言添加编译过程工具, 还是蛮有用, 所以, 不如花20分钟学习一下Flow

1K30

JS 中 this上下文对象使用方式

有句话说得很在理 -- 谁调用它,this就指向谁 一、全局范围内 在全局范围内使用this ,它将指向全局对象(浏览器中 window) var name = 'name1'; console.log...像这些类似匿名函数,默认都是被全局(浏览器下window)对象调用,要正确地让obj调用,就要指代好 可以用that保持this再进行下一步,或者匿名函数传值,或者使用call/apply/bind...其实就类似上头提到 obj.sayName()  obj.name 等 这时this会指向这个obj 四、call/apply/bind 调用 当使用 Function.prototype 上 ...call 或者 apply ,bind 方法时,函数内 this将会被 显式设置函数调用第一个参数。...可以看到,如果函数倾向于和 new 关键词一块使用,则我们称这个函数构造函数,当new 了之后,this则指向这个心创建对象(这个new 过程其实也涉及到了继承机制)。

1.8K10

odoo Actions学习总结

注解对于“Server Actions”,请使用model_id binding_type 指定绑定类型,主要是放置action上下文菜单 action (默认) 设置Action将出现在绑定模型...binding_view_types 以逗号分隔视图类型列表,即Action需要显示上下文菜单所在视图,主要是“列表”和“表单”。...context (可选) 传递给视图附加上下文 domain (可选) 隐式添加到所有视图搜索查询过滤domain limit (可选) 默认情况下要在列表中显示记录数。...默认值“Unnamed”,注意:如果name值空字符串,则默认为 Unnamed 例如,要使用列表和表单视图打开客户(设置了customer标志partner): { "type": "ir.actions.act_window...中每个未填充类型,追加(False,type) 应用实践举例 在estate模块estate.property模型表单视图中,Action添加菜单"选取offers",如下: !

2.6K30

odoo 开发入门教程系列-计算字段和变更(Computed Fields And Onchanges)

在self 上迭代,会一个接一个生成记录,其中每个记录本身是长度1集合。可以使用.(比如 record.name)访问单条记录字段或者给字段赋值。...添加字段到表单视图,正如本章目标中展示那样 对于关系型字段,可以使用通过字段路径作为依赖项: description = fields.Char(compute="_compute_description...该字段被定义最高报价 添加该字段到表单视图,正如本章目标中第一个动画 提示:你可能会想用 mapped() 方法,查看示例 writeoff_amount = sum...提示: create_date 仅在记录创建时被填充,因此需要一个回退,防止创建时奔溃 在表单和列表视图中添加字段,正如本章目标中显示第二个动画中一样。...始终首选computed field,因为它们也是在表单视图上下文之外触发。永远不要使用onchange将业务逻辑添加到模型中。

3.1K30

原生js怎么动态生成标签添加各种事件

这几天用zepto.js写了不少事件,突然想到一个问题,那就是原生js如何给动态生成标签添加事件?...因为这些标签都是后来通过ajax或者运行其他点击事件生成,那么如果之前给他们写事件他们这个dom对象是找不到,jq通过事件委托解决了这个问题,但是原生js这个问题该怎么解决呢?...我在网上查了很多资料,好像只有一种办法,那就是在生成标签并把标签添加到html结构中后再添加对于这个新标签各种事件,如果有更好方法,欢迎提出来。 <!...document.getElementById('a').appendChild(myp); alert(document.getElementsByTagName('p')[0]) myp.innerHTML = '我是新建<em>的</em>p...标签'; document.getElementsByTagName('p')[0].onclick = function(){ alert('我是p点击事件') } } <

8K50

Vue.js应用添加令人惊叹动画效果

Vue.js作为一种流行JavaScript框架,提供了强大动画支持,使开发人员能够轻松地其应用程序添加令人印象深刻动画效果。...本文将向您展示如何在Vue.js应用中利用这些功能,提高用户体验,同时也网站增加一些额外SEO价值。 1....您可以使用包装任何元素,从而实现动画效果添加。...3.2 合理使用动画 不要过度使用动画效果,以免干扰用户体验。确保动画是与内容相关,而不是为了炫耀而添加。 4....总结 通过使用Vue.js动画特性,您可以为您Web应用程序添加引人注目的动画效果,提高用户体验。同时,通过优化这些动画以提高SEO,您可以确保您网站在搜索引擎中获得更好排名。

17310

使用 Frp Web 服务添加 https 支持

使用 Frp Web 服务添加 https 支持 frp 是一个可用于内网穿透高性能反向代理应用,支持 tcp, udp 协议, http 和 https 应用协议提供了额外能力,且尝试性支持了点对点穿透...在众多反向代理应用中,frp 最大特点就在于内网穿透。所以,如果你有将内网对外提供 Web 服务需求,就可以考虑使用 frp Web 服务提供 https 支持。...frp 客户端在收到转发 https 请求后,使用 SSL 证书将 https 解密成 http 请求,然后修改 http 头添加或修改额外信息。...关于其他配置 https 方法,你可以阅读: 三种方法 ASP.NET Core 对外服务添加 https 支持(kestrel / frp / nginx) 使用 Kestrel ASP.NET...Core 服务添加 https 支持 使用 Nginx Web 服务添加 https 支持 除了 frp 以外方法都可以获得真实访客信息。

17.8K73

odoo 开发入门教程系列-模型之间关系(Relations Between Models)

模型和表单,树,搜索视图 该练习是对前几章很好扼要重述:你需要创建一个 model,设置 model,添加 动作和菜单,并且创建视图...._context 上下文字典 self.env.ref(xml_id) 返回和XML id对应记录 self.env[model_name] 返回给定模型实例 修改odoo14\custom\estate...到estate.property 模型,表单和列表视图 提示: 视图中,使用 widget="many2many_tags"属性正如这里展示一样。...price,partner_id,status字段创建列表和表单视图 ,不必创建动作和菜单 添加offer_ids字段到estate.property 模型极其表单视图 这里有几件重要事情需要注意...odoo如何知道我们报价与哪个房产相关?这就是使用odoo框架一部分魔力:有时候事情是隐式定义

4.4K40

odoo 开发入门教程系列-基本视图

last_seen"/> 练习 -- 添加一个自定义列表视图 在合适XML文件中estate.property model定义一个列表视图。..._name值 重启服务,浏览器验证,效果如下: 说明:如果未给添加string属性,则显示如下: Form(表单) 参考: 主题关联文档可以查看Form....练习 -- 添加自定义表单视图 在合适XML文件中estate.property 定义视图 为了避免每次修改视图时都重新启动服务器,可以在启动服务器时添加--dev-xml,以便只刷新页面就可以查看视图修改...搜索视图与列表及表单视图略有不同,因为它们不显示内容。尽管它们适用于特定模型,但它们用于过滤其他视图内容(通常是聚合视图,比如列表). 除了在使用方面的不同,他们定义方式是一样。...筛选器必须具有以下属性之一: domain:将给定domain添加到当前搜索 dontext:添加一些context到当前搜索,使用group_by按给定字段名称对结果分组。

3.2K40

odoo 开发入门教程系列-QWeb简史

表单视图也是如此:尽管使用了一些标记,如或,但在设计方面几乎没有什么可做。 然而,如果我们想给我们应用程序一个独特外观,就必须更进一步,能够设计新视图。...Odoo自带内置引擎:QWeb模板。QWeb是Odoo使用主要模板引擎。它是一个XML模板引擎,主要用于生成HTML片段和页面。 你可能已经在Odoo见过 看板,其中记录以卡片状结构显示。...目标: 本节结束时创建一个房产看板视图 在我们地产应用程序中,我们希望添加一个看板视图来显示我们房产。看板视图是标准Odoo视图(如表单和列表视图),但其结构更灵活。...练习--制作一个最小看版视图 根据上述提供简单例子,房产创建一个最小化看板视图。唯一展示字段name....您可能想看看Kanban中描述各种选项。 练习--添加默认分组 使用合适属性对房产分组,默认按类型分组。你必须阻止拖拽和删除。

2K20
领券