如何使用插件将自定义字段添加到 Odoo 12 中的现有视图?

How To Add Custom Fields to Existing Views in Odoo 12 With Addons?

我是 Odoo 附加组件(自定义模块)开发的新手,我想知道如何在不创建自定义视图来继承它的情况下将自定义模型添加到现有视图。

我的目标是创建一个布尔值和新字段,它将显示在 product.template 中,如下图所示:

但是一旦我升级我的自定义模块,它就会说:

Field "x_show_in_ecommerce" does not exist in model "product.template"

我的模型名为 sempoaEcommerce.py

from odoo import api, fields, models


class SempoaEcommmerce(models.Model):
    _name = "sempoa.ecommerce"
    _description = "Sempoa Ecommerce"

    x_show_in_ecommerce = fields.Boolean()
    x_description_sale_ecommerce = fields.Text()

这是我的 sempoaEcommerce.xml 文件

    <record id="product_template_only_form_view_inherit" model="ir.ui.view">
        <field name="name">product.template.inherited</field>
        <field name="model">product.template</field>
        <field name="inherit_id" ref="product.product_template_only_form_view" />
        <field name="arch" type="xml">

            <field name="sale_ok" position="after">
                <field name="x_show_in_ecommerce"/>
                <field name="x_description_sale_ecommerce"/>
            </field>

        </field>
    </record>

我正在使用 Odoo 14 开发这个自定义模块。 非常非常感谢任何建议和帮助!

视图定义模型记录的显示方式,要在模型表单视图中显示您的字段,您必须将字段添加到该模型 (product.template)。

更改 product.template 模型以添加 x_show_in_ecommercex_description_sale_ecommerce 字段:

class ProductTemplate(models.Model):
    _inherit = 'product.template'

    x_show_in_ecommerce = fields.Boolean()
    x_description_sale_ecommerce = fields.Text()

sale_ok 是在 div 中定义的,他们手动定义了它的标签,您的两个字段将在没有标签的情况下显示。