目录
odoo 的一些小部件主要定义在这个文件里面:
web/static/src/js/fields/field_registry.js
下面介绍一些常用的部件:
1、显示百分号
定义float类型数据,前端自动将小数*100加上百分号
实现效果:
代码:
<field name="gross_profit_margin" widget="percentage"/>
2、标签组件
这个是一个关系字段的组件,前提是字段为一个多对多字段,实现效果:
代码:
<field name="channel_ids" widget="many2many_tags"/>
3、handle 组件(拖拽排序)
在我们对一些字段新建模型做配置项的时候,我们往往通过many2one字段引用,这时如果配置的字段过多,我们常用的也就那么几个,这个组件就可以把常用的记录放在前面:
以下是这个组件的形式,这样每一条记录就可以拖动排序:
实现方式:
python代码定义排序字段:
sequence = fields.Integer('Sequence', help="Used to order states.", default=1)
xml引用:
<field name="sequence" widget="handle"/>
4、状态栏组件
<header>
<field name="state" widget="statusbar"/>
</header>
5、binary组件
<field name="filename"/>
<field name="document" widget="binary" filename="filename"/>
6、货币组件
实现代码:
<field name="suggest_price" widget="monetary" options="{'currency_field': 'currency_id'}"/>
7、statinfo组件
直接加widget属性就行,通常与button标签结合使用
<button type="object" name="action_view_invoice" class="oe_stat_button" icon="fa-pencil-square-o" attrs="{'invisible':['|', ('invoice_count', '=', 0), ('state', 'in', ('draft','sent','to approve'))]}">
<field name="invoice_count" widget="statinfo" string="Vendor Bills"/>
<field name="invoice_ids" invisible="1"/>
</button>
8、多对多字段设置标签颜色
首先呢要定义一个整型的字段 color 表示颜色
<field name="2many字段名" widget="many2many_tags" options="{'color_field': 'color'}"/>
9、日期型字段只显示年月
options="{'datepicker': {'format': 'YYYY-MM'}}"