Odoo没有在xpath中显示字段标签

时间:2017-11-16 09:40:08

标签: python xml odoo odoo-11

我要将自定义字符串字段(stock_value)添加到&product;产品和服务中心' Odoo enterprise 11中的模块,但我无法正确显示标签。

我继承了该模块,然后通过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>

结果,因为你可以看到零价格低于价格值,但是字符串标签&#39; Stock&#39;没有显示。

enter image description here

尝试了其他方法:

添加下一个代码:

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

给我

enter image description here

将字段放入组中会给我

enter image description here

我还试过将位置更改为&#39;之前&#39;在最后一个视图中,我无法让它看起来应该如此。我尝试使用@string但不再有效。

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

问题是,字段price位于div容器内,因此您必须将字段放在此div之后(字段price的父字段在DOM中)。因此,您必须告诉xpath您希望将字段放在字段price的DOM父级之后,而不是在代码之后的字段之后。根据您要查找的样式,您可以选择以下任一选项:

选项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>