如何在 odoo 11 中调用 jquery 中的 python 函数
How to call python function in jquery in odoo 11
Python代码:
@api.model
def test_method(self):
a= 10
b = 20
c = a+b
return c
jQuery:
var Model = require('web.Model');
$(document).ready(function() {
var test_model = new Model("MyClass");
test_model.call("test_method").then(function(c) {
console.log("res ult:" + JSON.stringify(result));
});
});
错误:
Missing depends,
上面的代码可以在 odoo 10 中使用,但不能在 odoo 11 中使用。我想知道如何从 JS 调用 python 函数。
在 Odoo 11 中你需要使用
var rpc = require('web.rpc');
而不是
var Model = require('web.Model');
然后使用 .query() 方法调用如下方法:
rpc.query({
model: 'model.name',
method: 'method_name',
args: [{
'arg1': value1,
'arg2': value2,
}]
}).then(function (returned_value) { // do something }
@api.model
def my_method(self):
a= 10
b = 20
c = a+b
return c
var MessageOfTheDay = Widget.extend({
template: "MessageOfTheDay",
start: function() {
var self = this;
this._rpc({
model: 'pettoys.pettoys',
method: 'my_method',
args: [], //Now gives the value of c.
}).then(function(res){
console.log(res); //it gives object
});
},
});
Python代码:
@api.model
def test_method(self):
a= 10
b = 20
c = a+b
return c
jQuery:
var Model = require('web.Model');
$(document).ready(function() {
var test_model = new Model("MyClass");
test_model.call("test_method").then(function(c) {
console.log("res ult:" + JSON.stringify(result));
});
});
错误:
Missing depends,
上面的代码可以在 odoo 10 中使用,但不能在 odoo 11 中使用。我想知道如何从 JS 调用 python 函数。
在 Odoo 11 中你需要使用
var rpc = require('web.rpc');
而不是
var Model = require('web.Model');
然后使用 .query() 方法调用如下方法:
rpc.query({
model: 'model.name',
method: 'method_name',
args: [{
'arg1': value1,
'arg2': value2,
}]
}).then(function (returned_value) { // do something }
@api.model
def my_method(self):
a= 10
b = 20
c = a+b
return c
var MessageOfTheDay = Widget.extend({
template: "MessageOfTheDay",
start: function() {
var self = this;
this._rpc({
model: 'pettoys.pettoys',
method: 'my_method',
args: [], //Now gives the value of c.
}).then(function(res){
console.log(res); //it gives object
});
},
});