Odoo 在继承模块内的向导视图中添加字段

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>

我有一个带有m2m字段的向导,显示library.book

在父模块视图中:

<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文件中,xpath
node
具有除
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)请显示唯一的定位器和引发错误的代码。当您使用字段定位器时,尝试将新树附加到te
book\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)请显示唯一的定位器和引发错误的代码。当您使用字段定位器时,尝试将新树附加到te
book\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>