Programmer LiLi
Programmer LiLi

Reputation: 157

how to add field to product.template in odoo 12

I would like to display a field in Form View of the product module, here is the python file (i use odoo 12.):

class ClassProductInherited:
    _inherit = 'product.template'

    file = fields.Char(string="Choose File")

Here is xml code (i use odoo 12.):

<record id="view_product_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_only_form_view"/>
            <field name="arch" type="xml">
                <xpath expr="//page[@name='inventory']/group" position="before">
                    <group col="2" colspan="2">
                        <field name="file"/>
                    </group>
                </xpath>

            </field>
        </record>

When I restart the server, problem is that I have the following error:

File "/home/odoo/models.py", line 1112, in _validate_fields
    raise ValidationError("%s\n\n%s" % (_("Error while validating constraint"), tools.ustr(e)))
odoo.tools.convert.ParseError: "Error while validating constraint

Field `file` does not exist

Error context:
View `product.template.common.form.inherit`
[view_id: 2095, xml_id: module.view_product_form_inherit, model: product.template, parent_id: 402]
None" while parsing /home/omar/odoo/custom-addons/addons12/module/views/views.xml:403, near
<record id="view_product_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_only_form_view"/>
            <field name="arch" type="xml">
                <xpath expr="//page[@name='inventory']/group" position="before">
                    <group col="2" colspan="2">
                        <field name="file"/>
                    </group>
                </xpath>

            </field>
        </record>

Upvotes: 0

Views: 2010

Answers (3)

Kiran Patil
Kiran Patil

Reputation: 27

check in your .py file that you have to inherit only single module in one ... if you declare more than one module in single record so remove it. and make another record for another module. then after check it you declare or note the field file in your .py file

Upvotes: 0

Dodge
Dodge

Reputation: 11

<record id="view_product_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="//field[@name='weight']" position="before">
                    <group>
                        <field name="file"/>
                    </group>
                </xpath>    
            </field>
        </record>

Try this piece of code and let me know if it works.

Upvotes: 0

Boubaker
Boubaker

Reputation: 429

1- First, check if the manifest.py file contains:

"depends": [
    'product'
], 

2- check if the name of your file that contains the class ClassProductInherited: exists in the init.py file like this for example:

from . import my_file

Upvotes: 2

Related Questions