用例子:Creating a new field widget

这可能是一个非常常见的用例:我们希望以非常具体(可能依赖于业务)的方式在表单视图中显示一些信息。 例如,假设我们要根据某些业务条件更改文本颜色。

这可以通过三个步骤完成:

创建新窗口小部件 widget,
在字段注册表中注册它,
然后将窗口小部件 widget添加到窗体视图中的字段

creating a new widget(创建新窗口小部件)
这可以通过扩展小部件来完成:

var FieldChar = require('web.basic_fields').FieldChar;

var CustomFieldChar = Fieldchar.extend({
renderReadonly: function () {
// implement some custom logic here
},
});

registering it in the field registry(在字段注册表中注册它)
Web客户端需要知道窗口小部件名称与其实际类之间的映射。 这是由注册表完成的:(add进行注册)

var fieldRegistry = require('web.field_registry');

fieldRegistry.add('my-custom-field', CustomFieldChar);

adding the widget in the form view(将窗口小部件 添加到窗体视图中的字段)

<field name="somefield" widget="my-custom-field"/>

请注意,只有表单,列表和看板视图使用此字段小部件注册表。 这些视图紧密集成,因为列表和看板视图可以显示在表单视图中。

 

odoo12学习之javascript-----2_用例

 

 

自定义一个视图:tree、form、类似的视图:



案例三

 

 

心有猛虎,细嗅蔷薇