Skip to Content
Menu
This question has been flagged



I,m trying to add field in sale order
this is code of my class:
from odoo import models , fields,api,_
class SaleOrder(models.Model):
_name='sale.order'
_inherit = 'sale.order'
warehouse_id=fields.Many2one("stock.warehouse")

and i inherit the view by this code and i added the field: 

<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="view_sale_form_inherit" model="ir\.ui\.view\"\>
\ \ \ \ \ \ \ \ \ \ \ \ \<field\ name=\"name\"\>sale.order.inherit</field>
<field name="model">sale.order</field>
<field name="inherit_id" ref="sale.view_order_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='sale_order_template_id']" position="after">
<field name="warehouse_id"/>
</xpath>
</field>
</record>
</data>
</odoo>


but the error occur:

Element '' cannot be located in parent view

View error context:
{'file': 'd:\\odoo16\\server\\odoo\\custom\\asmaa\\views\\sale_order.xml',
 'line': 2,
 'name': 'sale.order.inherit',
 'view': ir.ui.view(1622,),
 'view.model': 'sale.order',
 'view.parent': ir.ui.view(795,),
 'xmlid': 'view_sale_form_inherit'}



Avatar
Discard
Best Answer

Hi,
The field sale_order_template_id is defined in view sale_management.sale_order_form_quote, not in sale.view_order_form

So you can modify your code by inheriting sale_management.sale_order_form_quote and define your field as below


Hope this will help you

Thanks

Avatar
Discard
Best Answer

Hi,

because sale_order_template_id is presented in sale_management.sale_order_form_quote  view not in sale.view_order_form

Avatar
Discard
Best Answer

Hi,

Try like below code.

class SaleOrder(models.Model):
_inherit = 'sale.order'
warehouse_id = fields.Many2one("stock.warehouse")

<?xml version="1.0"?>
<odoo>

    <record id="view_sale_order_form" model="ir.ui.view">
        <field name="name">view.sale.order.form</field>
        <field name="model">sale.order</field>
        <field name="inherit_id" ref="sale.view_order_form"/>
        <field name="arch" type="xml">
            <xpath expr="//field[@name='validity_date']" position="after">
                <field name="warehouse_id"/>

            </xpath>
        </field>
    </record>

</odoo>


Make sure that you give the sales module as it depends on your manifest file.

Regards

Avatar
Discard
Related Posts Replies Views Activity
3
Nov 24
4062
2
Jul 23
3390
2
Jul 23
1897
0
Dec 23
1116
1
May 23
2876