我正在向 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"/>
给我
将字段放入组中给了我
我还尝试在最后一个视图中将位置更改为“之前”,但我无法使其看起来应有的样子。我尝试使用 @string 但不再有效。
问题是字段
price
位于 div
容器内,因此您必须将字段放在此 div
之后(这是 DOM 中字段 price
的父级)。因此,您必须告诉 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>