ODOO表单视图动作编辑模式打开
表单有两种模式,分别是view浏览和edit编辑,一般通过动作跳转的默认都是浏览模式,需要额外点击编辑按扭切换成编辑模式,对一些要求快速编辑的场景来说显得有些多余
ODOO10截止目前的版本已经可以直接通过action flags对象来透传initial_mode参数,具体用法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
''' author: i@renjie.me ''' @api.multi def action_edit_partner(self): self.ensure_one() return { 'type': 'ir.actions.act_window', 'view_type': 'form', 'view_mode': 'form', 'res_model': 'res.partner', 'res_id': 1, 'context': self.env.context, 'flags': {'initial_mode': 'edit'}, } |
早期的版本虽然不支持,但是对于dict类型来说,也是可以通过return透传给前端拿到,只需额外添加一个通用的桥接口中转下即可:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
/** * author: i@renjie.me */ var FormView = require('web.FormView'); FormView.include({ init : function(parent, dataset, views, flags, options){ var self = this; options = options || {}; if(flags && flags.initial_mode){ options.initial_mode = flags.initial_mode; } self._super.apply(self, arguments); } }); |
我odoo11中,在py文件中返回action到form视图,也是使用的flags参数,但是默认的模式还是view不是edit,什么问题?
可能要具体问题具体分析了,最好打开前端JS断点调式下