我想在'standard_price'之后的产品表单中添加几个额外的字段。
我创建了一个继承自“product.product_template_form_view”的视图,并在那里添加了我的字段:
<field name="standard_price" position="after">
<field name="my_field" />
</field>
然后我重新启动odoo更新模块,但是当我调用产品表单时,我没有看到我的新字段。
字段显示在数据库模型上(也创建了继承的模型),但不在用户界面上。
我在这里缺少什么?
答案 0 :(得分:1)
检查以下内容:
product.template.common.form
在standard_price_uom div之后使用新字段的工作视图的模板代码:
<div name='standard_price_uom' position="after">
<field name="my_field" />
</div>
如果这些没有帮助,请提供完整的视图定义。
答案 1 :(得分:0)
确保使用正确的型号。使用product.template
代替product.product
。
<record id="product_template_form" model ="ir.ui.view">
<field name="name">product.template.form</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view" />
<field name="arch" type="xml">
<field name="standard_price" position="after">
<field name="my_field"/>
</field>
</field>
</record>
...
class ProductTemplate(models.Model):
_inherit = "product.template"
my_field = fields.Char()
答案 2 :(得分:0)
确保已将XML文件添加到模块的__manifest__.py
文件中。 Odoo只从你告诉它的文件中提取XML。
您可以在任何核心模块上看到此示例。有关示例,请参阅sale/__manifest__.py
。
在你的模块上,它会是这样的:
{
...
‘data’: [
‘views/form/form_product.xml’,
]
...
}
答案 3 :(得分:0)
我已经在Odoo 12中对其进行了测试。
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="view_product_template_common_form_inherit" model="ir.ui.view">
<field name="name">product.template.common.form.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/>
<field name="arch" type="xml">
<xpath expr="//div[@name='standard_price_uom']" position="after">
<label for="my_field" string="My Field"/>
<div>
<field name="my_field"/>
</div>
</xpath>
</field>
</record>
</odoo>