openerp js调用Python类方法
转自:http://blog.csdn.net/kuaileboy1989/article/details/42875497
js调用.py文件中定义的类
形式如下:
//创建product.product类
var prod_obj=new instance.web.Model("product.product")
//调用prod_obj中的方法
prod_obj.call("get_defult_data",[element_ids,self.view.model,context]).then(function(result) {
})
在创建类时还可以带参数:
var mod = new instance.web.Model("account.move.line", context, domain);
详解:
用于连接OpenERP models的类是 instance.web.Model 当你实例化它,必须以试图连接的OpenERP model 名称作为第一个参数传入构造函数。
call(name, args, kwargs) 是Model的方法,用来调用OpenERP的服务器端model中的任意方法。下面参数说明:
1)name 是要调用的model中方法的名称。
2)args 是一个传给方法的基于位置的参数列表。例:
def my_method2(self, cr, uid, a, b, c, context=None): ...
model.call("my_method", [1,2,3], ...
// 对应参数值:a=1,b=2,c=3
3)kwargs 是一个传递给函数的命名参数列表。例:
def my_method2(self, cr, uid, a, b, c, context=None): ...
model.call("my_method", [], {a: 1, b: 2, c: 3, ...
// 对应参数值:a=1,b=2,c=3
Context说明:
Context是个“神奇”参数,Web客户端在调用服务端方法时,总是传递给服务端。context是一个包含多个key的dictionary。其中一个最重要的关键是用户的语言,服务器用来翻译应用程序的所有消息。另一个是用户的时区,如果使用OpenERP位于不同国家,用来计算正确的日期和时间。
model.call("my_method", [], {context: new instance.web.CompoundContext()})
Context是所有方法中必须有的参数,因为如果我们忘记了,可能会发生不好的事情(如应用程序没有被正确翻译)。这就是为什么,当你调用model的方法时,总需要给出这样的参数。解决办法是:使用类instance.web.CompoundContext。
CompoundContext这个类用来传递用户上下文(语言,时区等)给服务器的,以及增加新的上下文key(某些model方法通过任意key添加到上下文中)。其构造函数的参数是任意数量的dictionary,或一个其他的CompoundContext实例。它将合并所有上下文信息,再发送到服务器。
openerp js调用Python类方法的更多相关文章
- C# winForm webBrowser页面中js调用winForm类方法(转)
有时我们在winform项目中嵌入了网页,想通过html页面调用后台方法,如何实现呢?其实很简单,主要有三部: 1.在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类 ...
- [Winform-WebBrowser]-在html页面中js调用winForm类方法
在winform项目中嵌入了网页,想通过html页面调用后台方法,如何实现呢?其实很简单,主要有三部: 1.在被调用方法类上加上[ComVisible(true)]标签,意思就是当前类可以com组件的 ...
- Python类方法、静态方法与实例方法 -----类里面不需要实例化参数 和没带self的函数 调用此函数的方法
来源: https://www.cnblogs.com/blackmatrix/p/5606364.html 静态方法是指类中无需实例参与即可调用的方法(不需要self参数),在调用过程中,无需将类实 ...
- Python类方法、静态方法与实例方法
静态方法是指类中无需实例参与即可调用的方法(不需要self参数),在调用过程中,无需将类实例化,直接在类之后使用.号运算符调用方法. 通常情况下,静态方法使用@staticmethod装饰器来声明. ...
- JS调用asp.net后台方法:PageMethods
先帮朋友宣传一下程序人生(http://www.manong123.com)的网站,里面都是开发感悟,开发人员创业,支持一下吧~ 原来是通过PageMethods来实现的. 举个列子: Default ...
- python类方法@classmethod与@staticmethod
目录 python类方法@classmethod与@staticmethod 一.@classmethod 介绍 语法 举例 二.@staticmethod 介绍 语法 举例 python类方法@cl ...
- jenkins发布程序触发shell调用python脚本刷新akamai cdn api
刷新cdn的流程:jenkins获取git中的代码,触发脚本推送到生产环境中(即cdn的源站) --> 触发脚本获取git工作目录的更新列表,将更新列表拼凑成带域名信息的url,写入到目录中 - ...
- reduce()之js与python
最近在自学python基础,发现很多js中的内置函数python中都存在,甚至比js更加简洁,下面说一下reduce()在js和python中的用法,做个对比便于记忆. reduce()简介: red ...
- 对比Node.js和Python 帮你确定理想编程解决方案!
世上没有最好的编程语言.有些编程语言比其他编程语言用于更具体的事情.比如,你可能需要移动应用程序,网络应用程序或更专业化的系统,则可能会有特定的语言.但是我们暂时假设你需要的是一个相对来说比较简单的网 ...
随机推荐
- AspNet5 Changes to [Activate] in beta-5
最近在看AspNet Core相关的文章,其中有个TagHelper,看上善若水的博客“关于TagHelper的那些事”,其中有一句 下面来自上善若水的博客原文: 我们知道ASP.NET 5实现了依赖 ...
- 关于 CommonJS AMD CMD UMD
1. CommonJS CommonJS 原来叫 ServerJS, 是服务器端模块的规范,Node.js采用了这个规范. 根据CommonJS规范,一个单独的文件就是一个模块.加载模块使用requi ...
- Vue视图下
3 Vue视图 3.5 样式绑定 class绑定 <p :class='对象'> <p :class="数组"> <p :class="{类 ...
- bootstrapTable定位行固定滚动条
写在前面: 当页面table列表数据有修改后,用户需要再次回到修改的行位置. 1.当修改行数据后,table刷新,行数据位置前后不发生改变 ,可使用下面这种方法: /*获取当前滚动条的位置*/ var ...
- Spring MVC 工作流程详解
1.首先先来一张图 开始流程----------------> 1.用户发送请求到前端控制器,前端控制器会过滤用户的请求,例如我们在web.xml里面配置的内容: <!-- 配置Sprin ...
- python基础之条件判断和循环
1.条件判断 age = 3 if age >= 18: print('adult') elif age >= 6: print('teenager') else: print('kid' ...
- java.lang.RuntimeException: com.intellij.ide.plugins.PluginManager
描述: 在mac电脑上的Android Studio.因为项目需求,加载plugins中的dart和Flutter插件.经过***后,依然无法从AS中加载进来. 曲折到Jetbrains官网下载了da ...
- datatables .fnDraw is not a function
Datatables中文网:http://dt.thxopen.com/manual/api.html API DataTables 提供的可以操作表格数据的API,有下面六个关键部分: 表格(tab ...
- 【QQ输入法】QQ输入法-剪切板 释放内存
发现一个神奇的情况: 清除和关闭的操作: 1. 2.右键 3.点击 4.清空 5.最后需要关闭 QQ输入法的进程
- [Linux] Linux命令之pstree - 以树状图显示进程间的关系
转载自: http://codingstandards.iteye.com/blog/842156 pstree命令以树状图显示进程间的关系(display a tree of processes). ...