Odoo中文网|Odoo实施培训

 找回密码
 立即注册
搜索
热搜: Odoo OpenERP 实施
查看: 7137|回复: 0
打印 上一主题 下一主题

js调用

[复制链接]

119

主题

119

帖子

566

积分

高级会员

Rank: 4

积分
566
跳转到指定楼层
楼主
发表于 2016-10-4 22:16:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
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实例。它将合并所有上下文信息,再发送到服务器。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|技术支持|开发手册|Odoo中文网-远鼎旗下odoo培训网站 ( 苏ICP备15039516号 )

GMT+8, 2024-4-20 20:28 , Processed in 0.011558 second(s), 10 queries , Xcache On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表