
Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn
由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解
本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!
开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号
如果您登录系统碰到问题,请在微信公众号留言:
复制一个widgets 改个名字 自己调用 , 如何实现?? 各种widgets 类型什么意思??
-
这是 多对多 形式的展现方式 我想新增一个
core.form_widget_registry.add('many2many_kanban_my', FieldMany2ManyKanban1);
实现的方式跟 原生的大体一样 我修改了一个文件
.add('many2many_kanban', FieldMany2ManyKanban)
还有 widgets注册的方式 都是什么意思 如下图:
-
试着来回答:“还有 widgets注册的方式 都是什么意思 ”
这是在core.js文件web.core module中return 部分, new Registry()作用是 初始化注册器类和她的map属性,用来登记系统的widgets, map={键值对 } || null。Registry类还有get()和add()等方法。
作用是:当我们在其他module中创建新的widget,注册widget就是往Registry类的map写键值对。e.g: 如web.form_widgets模块中,可以看到一行core.form_widget_registry.add( 'char', FieldChar ), 实质上就是往注册器map中添加键值对{..., 'char': FieldChar, ....},告知系统有个叫FieldChar的widget类。当需要继承Fieldchar时,就可以用代码core.form_widget_registry.get('char') 来获取他的widget类。
列举一段代码来说明(顺便说一下:第一个问题应该也可以用这个原理来实现, 没试过):
var core = require('web.core');
form_widget_registry= core.form_widget_registry
var FieldChar = form_widget_registry.get('char');
var MyFieldChar = FieldChar.extend({
template: 'MyTemplate' // my custom template
// overriding ........ if you have
});
// register widget
form_widget_registry.add('my_char', MyFieldChar); -
-
先分清楚widget是在form上显示还是在list 上显示
-
extend 基类widget
-
根据自己的业务逻辑重写方法
-
注册自己写的widget
-
-