web.DataModel缺少odoo11

时间:2018-05-18 03:11:47

标签: javascript odoo-10 odoo-11

我将odoo 10模块更改为odoo 11.我正面临缺少依赖关系web.DataModel的问题。如何将以下代码转换为odoo 11版本。

 var temp = {
       'partner_id': client['id'],
       'coupon_pos': cp.code,
          };
 new Model('partner.coupon.pos').call('update_history', 
 ['',temp]).done(function (result) {
     // alert("result")
     var applied = self.pos.applied_coupon;
     var already_used = false;
     for (var j in applied) {
     if (applied[j]['partner_id'][0] == client['id'] &&
         applied[j]['coupon_pos'] == order.coupon_status['code']) {
         applied[j]['number_pos'] += 1;
         already_used = true;
         break;
     }
   }
   if (!already_used) {
      var temp = {
          'partner_id': [client['id'], client['name']],
          'number_pos': 1,
          'coupon_pos': order.coupon_status['code']
       };
       self.pos.applied_coupon.push(temp);
    }
 });
self.gui.close_popup();

1 个答案:

答案 0 :(得分:0)

在v10中, web.DataModel 用于在js中调用py方法,但在odoo v11中已弃用。如果要在js文件中调用任何py方法,则需要使用 _rpc 方法。例如:

this._rpc({
                model: 'model.name',
                method: 'method_name',
                args: [arguments],
            })
            .then(function(result) {
                //custom code
            });

通过这种方式,您可以将v10 js代码转换为v11。