Odoo 在继承模块内的向导视图中添加字段
我有一个带有m2m字段的向导,显示library.book树 在父模块视图中:Odoo 在继承模块内的向导视图中添加字段,odoo,odoo-12,Odoo,Odoo 12,我有一个带有m2m字段的向导,显示library.book树 在父模块视图中: <field name='model'>library.return.wizard</field> <field name='arch' type='xml'> <form string="Return books"> <sheet> <group>
<field name='model'>library.return.wizard</field>
<field name='arch' type='xml'>
<form string="Return books">
<sheet>
<group>
<field name='book_ids'>
<tree>
<field name="name"/>
<field name="state"/>
<!--How to add date_return field here?-->
<!--<field name="date_return"/>-->
</tree>
</field>
</group>
</sheet>
</form>
</field>
<field name='model'>library.return.wizard</field>
<field name='arch' type='xml'>
<field name='book_ids' position="inside">
<tree>
<xpath expr="field[@name='state']" position="after">
<field name="date_return" />
</xpath>
</tree>
</field>
</field>
我试图在子模块视图中向向导视图添加一个日期\u返回字段,如下所示:
<field name='model'>library.return.wizard</field>
<field name='arch' type='xml'>
<form string="Return books">
<sheet>
<group>
<field name='book_ids'>
<tree>
<field name="name"/>
<field name="state"/>
<!--How to add date_return field here?-->
<!--<field name="date_return"/>-->
</tree>
</field>
</group>
</sheet>
</form>
</field>
<field name='model'>library.return.wizard</field>
<field name='arch' type='xml'>
<field name='book_ids' position="inside">
<tree>
<xpath expr="field[@name='state']" position="after">
<field name="date_return" />
</xpath>
</tree>
</field>
</field>
如果我尝试使用xpath,就会出现js前端错误
<record id='library_return_wizard_form_add' model='ir.ui.view'>
<field name='name'>library.return.wizard.form.view.add</field>
<field name='model'>library.return.wizard</field>
<field name="inherit_id" ref="my_library.library_return_wizard_form"/>
<field name='arch' type='xml'>
<field name='book_ids' position="inside">
<tree>
<xpath expr="//field[@name='book_ids']/tree/field[@name='state']" position="after">
<field name="date_return" />
</xpath>
</tree>
</field>
</field>
</record>
在list_renderer.js文件中,xpathnode
具有除expr
未定义之外的所有属性
最终编辑:
我也应该删除这几个元素,在长时间盯着这个文件看之后我没有注意到。定位器或xpath
应该放在arch
中
<field name='book_ids' position="inside">
<tree>
您应该使用
继承\u id
字段来指定当前视图的父视图,默认情况下它是未设置的
您正在尝试定位名为book\u id
的字段,并向其中添加一个树,该树具有一个XPath表达式来定位state
字段。正确的方法是定位state字段并使用position属性指定应如何更改匹配的节点
<record id="view_library_return_wizard_form" model="ir.ui.view">
<field name="name">library.return.wizard.form.inherit</field>
<field name="model">library.return.wizard</field>
<field name="inherit_id" ref="MODULE_NAME.FORM_VIEW_ID"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='book_ids']/tree/field[@name='state']" position="after">
<field name="date_return"/>
</xpath>
</field>
</record>
编辑::
继承规范由元素定位器(用于匹配父视图中的继承元素)和子元素(用于修改继承元素)组成
您只需在视图arch
xpath:
字段:
您应该使用
继承\u id
字段来指定当前视图的父视图,默认情况下它是未设置的
您正在尝试定位名为book\u id
的字段,并向其中添加一个树,该树具有一个XPath表达式来定位state
字段。正确的方法是定位state字段并使用position属性指定应如何更改匹配的节点
<record id="view_library_return_wizard_form" model="ir.ui.view">
<field name="name">library.return.wizard.form.inherit</field>
<field name="model">library.return.wizard</field>
<field name="inherit_id" ref="MODULE_NAME.FORM_VIEW_ID"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='book_ids']/tree/field[@name='state']" position="after">
<field name="date_return"/>
</xpath>
</field>
</record>
编辑::
继承规范由元素定位器(用于匹配父视图中的继承元素)和子元素(用于修改继承元素)组成
您只需在视图arch
xpath:
字段:
“继承id”字段肯定有帮助,但当只使用位置为“after”的定位器时,树小部件出于某种原因只显示“state”。xpath expr只是给出了一个前端错误,因为xpath对象的值未定义。TypeError:无法读取类中未定义的属性“type”。_renderBodyCell(localhost:/web/static/src/js/views/list/list_renderer.js:317:55)请显示唯一的定位器和引发错误的代码。当您使用字段定位器时,尝试将新树附加到tebook\u id
字段和XPath表达式中,您添加了一个已包含XPath的树。使用字段定位器或XPath表达式,检查my editThank you@Kenly,感谢您花时间回答这个问题。“inherit_id”字段肯定有帮助,但当仅使用定位器时,位置为“after”,树小部件出于某种原因只显示“state”。xpath expr只是给出了一个前端错误,因为xpath对象的值未定义。TypeError:无法读取类中未定义的属性“type”。_renderBodyCell(localhost:/web/static/src/js/views/list/list_renderer.js:317:55)请显示唯一的定位器和引发错误的代码。当您使用字段定位器时,尝试将新树附加到tebook\u id
字段和XPath表达式中,您添加了一个已包含XPath的树。使用字段定位器或XPath表达式,检查我的编辑谢谢@Kenly花时间回答这个问题。
<record id="view_library_return_wizard_form" model="ir.ui.view">
<field name="name">library.return.wizard.form.inherit</field>
<field name="model">library.return.wizard</field>
<field name="inherit_id" ref="MODULE_NAME.FORM_VIEW_ID"/>
<field name="arch" type="xml">
<field name="state" position="after">
<field name="date_return"/>
</field>
</field>
</record>
<xpath expr="//field[@name='book_ids']/tree/field[@name='state']" position="after">
<field name="date_return"/>
</xpath>
<field name="state" position="after">
<field name="date_return"/>
</field>