改变现有的视图-视图继承Changing existing views
案例
<record id="view_partner_form" model="ir.ui.view">
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<field name="website" position="after">
<field name="write_date" />
</field>
</field>
</record>
参数说明
- inherit_id 需要将想要修改(继承)的视图的XML ID传递给它
<field name="inherit_id" ref="base.view_partner_tree"/>
- 继承视图的arch字段中最规范的指令是field元素,它具有必需的属性名称name和位置position
<field name="website" position="after">
<field name="write_date" />
</field>
- position位置可以在我们命名的字段之前before、内部inside 或之后after .默认是内部inside
- 正则表达式寻找位置,标签 关键字:expr=" 正则表达式"
4.1 选择filed字段
<xpath expr="." position="inside">
<field name="mobile" />
</xpath>
4.2 选择class 例如
标签的表达式 使用 hasclass
expr="//div[hasclass('test_class')]"
4.3 修改视图字段顺序 ,先找出目标字段email的位置,确定将要放置字段的相对位置after,放置字段的参数position=“move”
<field name="email" position="after">
<field name="phone" position="move"/>
</field>
4.4 replace and attributes 使用说明
<field name="email" position="replace" /> #直接删除email字段
<field name="email" position="replace"> #直接替换
<field name="phone" />
</field>
不删除隐藏 注意:参数是attributes 对应的标签是
<field name="email" position="attributes">
<attribute name="invisible">1</attribute> #invisible可以替换为remove,add
</field>
添加class 以空格分隔。这段代码将oe_inline class添加到email字段.如果字段已经存在class属性,Odoo将把这个值与separator属性的值连接起来
<field name="email" position="attributes">
<attribute name="class" add="oe_inline" separator=" "/>
</field>
给field字段添加参数
attrs="{'invisible': [('hr_presence_state', '=', 'absent')]}"