我有一段代码在javascript中调用python方法,但代码不起作用,将显示错误.i.e。
error: Some modules could not be started
Failed modules: ["group_js.costume"]
Debug: Object {group_js.costume: Object}
我的.py文件是
class group_js(osv.osv):
_name = "group_js"
_description = "Group JS"
_columns={
'js' : fields.text('Javascript',required = True , store=True),
}
@api.multi
def get_record(self):
return [(i.js) for i in self]
我的.js文件是
odoo.define('group_js.costume', function (instance) {
new instance.web.Model("group_js").call("get_record",[list_of_record]).then(function(result){
console.log("hiiii");
});
});
所以我不知道如何解决这个问题,所以请帮我解决这个错误。
由于
答案 0 :(得分:2)
要从odoo python模型调用一个方法,你可以在javascript中使用Model()。call()。
例如,考虑py文件中的以下模型。
class group_js(models.Model):
_name = "model.example"
_description = "Example model"
def get_record(self):
return ''
从javascript文件中,您可以将其命名为:
new Model("model.example").call("get_record",[args]).then(function(result){
console.log(result);//show in console Hello
});
这里是调用方法的更多细节:
/**
* Call a method (over RPC) on the bound OpenERP model.
*
* @param {String} method name of the method to call
* @param {Array} [args] positional arguments
* @param {Object} [kwargs] keyword arguments
* @param {Object} [options] additional options for the rpc() method
* @returns {jQuery.Deferred<>} call result
*/