This question has been flagged
1 Reply
6220 Views

I am trying to inherit the form view from Action: Manufacturing -> Products -> Products to insert a new field in the view. 

Here is the code for my python file:

from openerp import models, fields

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

    drawingfilename = fields.Char(string="DrawingFileName")

And my view xml:

        <record model="ir.ui.view" id="view_product_template_product_form_inherit">
            <field name="name">ICE Product Product Inherit</field>
            <field name="model">product.template</field>
            <field name="inherit_id">product.product_template_form_view</field>
            <field name="arch" type="xml">
                <data>
                    <xpath expr='//form/sheet/div[0]/div[0]/label' position="after">
                        <field name="drawingfilename"/>
                    </xpath>
                </data>
            </field>
        </record>

I see that my field is created appropriately in the database, but when I go to install the module for the first time, I get the following error:

test openerp.sql_db: bad query:  SELECT ir_ui_view."inherit_id",ir_ui_view."create_date",ir_ui_view."name",ir_ui_view."create_uid",ir_ui_view."
arch",ir_ui_view."write_uid",ir_ui_view."priority",ir_ui_view."mode",ir_ui_view."write_date",ir_ui_view."active",ir_ui_view."model",ir_ui_view."model_data_id",ir_ui_view."type",i
r_ui_view."id",ir_ui_view."field_parent" FROM "ir_ui_view"
                    WHERE ir_ui_view.id IN ('product.product_template_form_view') AND (TRUE)
                    ORDER BY priority,name

ParseError: "invalid input syntax for integer: "product.product_template_form_view"
LINE 2:                     WHERE ir_ui_view.id IN ('product.product...
                                                    ^
" while parsing /home/odoo/odoo/addons/mrp_iceproducts/iceproducts_view.xml:4, near
<record model="ir.ui.view" id="view_product_template_product_form_inherit">
            <field name="name">ICE Product Product Inherit</field>
            <field name="model">product.template</field>
            <field name="inherit_id">product.product_template_form_view</field>

It looks like it is not running a select somewhere to change 'product.product_template_form_view' to an 'id.'
  Am I mistaken in using that particular form as the inherit_id?  Is there something I am missing?

 

Avatar
Discard

did you inherited product.product to add that field,,can you please give that code too?

Author

@Baiju KS, I just updated my question with the full code in python and the view xml. I thought the product.template was the correct model to inherit. Is that not true?

Author

I just tried with the following python: class product_product(models.Model): _inherit = 'product.product' drawingfilename = fields.Char(string="DrawingFileName") and the View xml: ICE Product Product Inherit product.product product.product_template_form_view Still getting the ParseError: on a brand new database (dropped the old one, restored from a backup that was made before trying the install)

Author

I have created a github for review here: https://github.com/michaeljohn32/mrp_iceproducts

Best Answer

Hi,

You have mistaken into inherit_id of the view.

<record model="ir.ui.view" id="view_product_template_product_form_inherit">
            <field name="name">ICE Product Product Inherit</field>
            <field name="model">product.template</field>
            <field name="inherit_id">product.product_template_form_view</field>
            <field name="arch" type="xml">
                <data>
                    <xpath expr='//form/sheet/div[0]/div[0]/label' position="after">
                        <field name="drawingfilename"/>
                    </xpath>
                </data>
            </field>
        </record>

It should not be the simple text data it must reference of the external_id so you have to define your view as like below.

<record model="ir.ui.view" id="view_product_template_product_form_inherit">
            <field name="name">ICE Product Product Inherit</field>
            <field name="model">product.template</field>
            <field name="inherit_id" ref="product.product_template_form_view" />
            <field name="arch" type="xml">
                <data>
                    <xpath expr='//form/sheet/div[0]/div[0]/label' position="after">
                        <field name="drawingfilename"/>
                    </xpath>
                </data>
            </field>
        </record>

I hope your issue will resolve.

Avatar
Discard
Author

That is correct! Thank you!