2016-06-10 5 views
2

Ich habe ein Stück Code, um die Python-Methode in Javascript aufrufen, aber der Code hat nicht funktioniert, und ein Fehler wird angezeigt werden .i.e.So rufen Sie Python-Methode von odoo 9 Javascript

error: Some modules could not be started 
Failed modules: ["group_js.costume"] 
Debug: Object {group_js.costume: Object} 

und meine Py-Datei ist

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] 

meine js-Datei

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"); 
    }); 
}); 

ist, so habe ich keine Ahnung, wie das beheben, so helfen Sie mir bitte für diesen Fehler beheben .

Dank

Antwort

1

Um eine Methode aus dem odoo Python Modell rufen Sie Modell haben(). Call() in JavaScript.

Zum Beispiel an folgendes Modell in Py-Datei denken.

class group_js(models.Model): 
    _name = "model.example" 
    _description = "Example model" 

    def get_record(self): 
     return '' 

Und von der JavaScript-Datei, die Sie als anrufen:

new Model("model.example").call("get_record",[args]).then(function(result){ 
    console.log(result);//show in console Hello 
}); 

Hier werden die weiteren Einzelheiten der Call-Methode:

/** 
* 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 
*/