Odoo 不在 xpath 中显示字段标签

Odoo doesn't show the field label in xpath

我正在向 Odoo enterprise 11 中的 'product.supplierinfo' 模块添加自定义字符串字段 (stock_value),但无法正确显示标签。

我继承了模块,然后通过 xpath 向模块和视图添加了一个新字段。

问题:没有显示与新字段相关的字符串。

模块:

class class_name(models.Model):
    _inherit                        = 'product.supplierinfo'
    stock_value                     = fields.Integer(string="Stock")

查看:

<!-- Stock value in the vendors -->
<record id="view_product_product_supplierinfo_form_view" model="ir.ui.view">
    <field name="name">product.supplierinfo.product.form</field>
    <field name="model">product.supplierinfo</field>
    <field name="inherit_id" ref="product.product_supplierinfo_form_view"/>
    <field name="arch" type="xml">
    <xpath expr="//field[@name='price']" position="after">
        <field name="stock_value" />
    </xpath>
    </field>
</record>

结果: 如您所见,价格值下方有一个零,但未显示字符串标签 'Stock'。

其他尝试:

添加下一个代码:

<separator />
<label for="stock_value" string="Stock Value"/>

给我

将字段放在一个组中给了我

我也尝试在最后一个视图中将位置更改为 'before',但我无法让它看起来像它应该的样子。我尝试使用 @string 但它不再有效。

感谢您的帮助。

问题是字段 pricediv 容器内,所以你必须把你的字段放在这个 div 之后(它是字段 price 在 DOM) 中。因此,您必须告诉 xpath 您想要将字段放在字段 price 的 DOM 父级之后,而不是像您在代码中那样仅在字段之后。根据您要寻找的样式,您可以select以下任何选项:

选项 1(您也可以将 class="oe_inline 添加到您的字段中):

<!-- Stock value in the vendors -->
<record id="view_product_product_supplierinfo_form_view" model="ir.ui.view">
    <field name="name">product.supplierinfo.product.form</field>
    <field name="model">product.supplierinfo</field>
    <field name="inherit_id" ref="product.product_supplierinfo_form_view"/>
    <field name="arch" type="xml">
        <xpath expr="//field[@name='price']/.." position="after">
            <label for="stock_value"/>
            <div>
                <field name="stock_value"/>
            </div>
        </xpath>
    </field>
</record>

选项 2:

<!-- Stock value in the vendors -->
<record id="view_product_product_supplierinfo_form_view" model="ir.ui.view">
    <field name="name">product.supplierinfo.product.form</field>
    <field name="model">product.supplierinfo</field>
    <field name="inherit_id" ref="product.product_supplierinfo_form_view"/>
    <field name="arch" type="xml">
        <xpath expr="//field[@name='price']/.." position="after">
            <field name="stock_value"/>
        </xpath>
    </field>
</record>