一、context的用处
在odoo中,context的用处有很多:
- 关联字段Many2one中的context,在xml视图中定义,可以传递至server端,这里在重新定义特定模型的展示名字(name_get)及搜索(name_search)时,特别有用;
- 在xml定义的button,可以传递至server端;
- 在tree视图的元素中,给2many字段创建元素时,设置默认值;
- 在form视图中,针对关联字段,如context="{‘default_login’: ‘leinal22@163.com’}"
- 在search视图中,filter标签,传递默认分组context="{‘group_by’:‘country_id’}"
- 窗口动作(ir.actions.act_window)中使用context,field name=“context”>{‘asset_type’: ‘purchase’}</field,在打开的form中绑定的方法能够直接获取导context;在窗口动作中,还能实现对打开的视图记录进行过滤:{‘search_default_week’: True};对新建的form设置默认值:{‘default_customer’: True};绑定视图:{‘tree_view_ref’: ‘my_module.tree_all_contacts’}
二、many2many字段传递context,实现不同的name display
many2many字段,xml视图中的context默认不加载导上下文的context,致使服务器端无法获取。
需重写"web.BaseModel"类:
odoo.define('e2yun_xw_specification.SpecificationModel', function (require) {
"use strict";
/**
* 重写_applyX2ManyChange方法,在m2m字段使用onchange时,前段传递视图定义的context的参数
**/
var BasicModel = require('web.BasicModel');
BasicModel.include({
_applyX2ManyChange: function (record, fieldName