Odoo销售点如何访问模型并使用JS调用方法

Odoo Point Of Sale How to acess a Model and call methods using JS

本文关键字:JS 方法 调用 模型 销售点 何访问 访问 Odoo      更新时间:2023-09-26

我想调用一个自定义模型(kitcher.order),使用js从POS在该模型中创建数据。

但是它抛出了一个错误

TypeError:create()获得了一个意外的关键字参数"user_id"

这是我的js代码(kitcher.js)

odoo.define('hsr_pos.kitchen_order', function (require) {
"use strict";
var screens = require('point_of_sale.screens');
var Model = require('web.DataModel');
var KitchenButton = screens.ActionButtonWidget.extend({
    template: 'KitchenButton',
    button_click: function(){
        var self = this;
        var val = "test";
        self.send_kitchen();
    },
    send_kitchen: function() {
        var order = this.pos.get_order();
        var lines = order.get_orderlines();
        var o = new Model('kitchen.order');
        var orders = this.db.get_orders();
        console.log(order.export_as_JSON()); 
    },
});
screens.define_action_button({
    'name': 'kitchen',
    'widget': KitchenButton,
});
});

最后我得到了

[_.map(orders, function (order) {
            return order;
        })],undefined,
        {
            shadow: false,
            timeout: false
        }
        ); 

代码更改如下:

odoo.define('hsr_pos.kitchen_order', function (require) {
    "use strict";
    var screens = require('point_of_sale.screens');
    var Model = require('web.DataModel');
    var KitchenButton = screens.ActionButtonWidget.extend({
        template: 'KitchenButton',
        button_click: function(){
            var self = this;
            var val = "test";
            self.send_kitchen();
        },
        send_kitchen: function() {
            var order = this.pos.get_order();
            var lines = order.get_orderlines();
            var o = new Model('kitchen.order');
            console.log(order.export_as_JSON());
            o.call('create',[_.map(orders, function (order) {
                    return order;
                })],undefined,
                {
                    shadow: false,
                    timeout: false
                }
                ););  
        },
    });
    screens.define_action_button({
        'name': 'kitchen',
        'widget': KitchenButton,
    }); 
});