文章目录
- 问题描述
- 梳理写法
- 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写法
<div class="col-sm-12 col-md-6 col-lg-4 col-xl-4 col-xxl-3" t-on-click="openQuant" quant="product"><a href="#"class="btn btn-primary w-100 h-100 border-0 rounded-0 text-capitalize text-break fw-normal p-3">库存</a>
</div>
前端方法
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都可以的。