js调用.py文件中定义的类

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实例。它将合并所有上下文信息,再发送到服务器。



转自:http://odoodevelop.lofter.com/post/1cd05c40_41e42ff


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用 Flask 框架来实现这个功能。具体实现步骤如下: 1. 确保 Flask 框架已经安装: ```python pip install flask ``` 2. 在项目根目录下创建一个 app.py 文件,用于启动 Flask 应用: ```python from flask import Flask, render_template, request, jsonify import subprocess app = Flask(__name__) @app.route('/') def index(): return render_template('baobiao.html') @app.route('/generate_report', methods=['POST']) def generate_report(): result = subprocess.call(['python', 'baobiao.py']) if result == 0: return jsonify({'success': True, 'message': '报表生成成功!'}) else: return jsonify({'success': False, 'message': '报表生成失败!'}) if __name__ == '__main__': app.run(debug=True) ``` 3. 在 html 目录下创建 baobiao.html 文件,用于定义生成报表的按钮: ```html <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>生成报表</title> </head> <body> <button id="generate_report_btn">生成报表</button> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script> $(function() { $('#generate_report_btn').click(function() { $.post('/generate_report', function(data) { if (data.success) { alert(data.message); } else { alert(data.message); } }); }); }); </script> </body> </html> ``` 4. 在项目根目录下创建 baobiao.py 文件,用于生成报表。此处省略具体实现。 5. 启动 Flask 应用: ```python python app.py ``` 6. 在浏览器访问 http://localhost:5000/baobiao.html 即可看到生成报表的按钮。点击按钮后如果报表生成成功,就会弹出提示框显示“报表生成成功!”;如果报表生成失败,就会弹出提示框显示“报表生成失败!”

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值