odoo-040 odoo17前端的js方法调用后端py方法action报错

文章目录

      • 问题描述
      • 梳理写法
        • xml写法
        • 前端方法
        • 后端action的写法
      • 错误解释

问题描述

在前端的kanban视图上添加了几个自定义按钮,按钮点击可以跳转到对应的tree视图,在写按钮调用方法的时候报错如下:
前端调用后端action报错:

action.views = [...action.views.map((v) => [v[0], v[1] === "tree" ? "list" : v[1]])]; // manipulate a copy to keep cached action unmodified

梳理写法

xml写法

前端方法
async openQuant(ev) {
   const quant = ev.currentTarget.getAttribute("quant");
   const action = await this.orm.call("stock.picking.type", "open_action_stock_quant",
                                   [[]], {'context': {'quant': quant}});
   this.action.doAction(action);
    }
后端action的写法
action= {
    'type': 'ir.actions.act_window',
    'res_model': 'stock.quant',
    'view_mode': 'tree',
    'views': [(False, 'list'), (False, 'form')],
}

错误解释

报错的一个原因是后端的action必须有个views这个现实的字段设置才行,哪怕id是False都可以的。

你可能感兴趣的:(Odoo,总结,前端,javascript,odoo)