This question has been flagged
3 Replies
6002 Views

Hi all,

I'm beginer in Odoo v8.0. I want to add a custom field into module "sale". The Error is "Field `type_customer` does not exist"

So my code here.

__init__.py

from . import modify_type_quotation

__openerp__.py

{
   'name' : "Modify report template",
   'description' : """Modify report template for Quotation/Sale report""",
   'author' : "Nhu Van Tran",
   'category' : "Tools",
   'depends' : ['sale'],
   'data' : ['modify_create_quotation.xml'],
   'demo' : [],
   'installable' : True,
}

modify_type_quotation.py

# -*- coding: utf-8 -*-

from openerp import models, fields

class modify_print_content(models.Model):

   _inherit = "sale.order"
   _description = "Modify Print Content"

   type_customer = fields.selection([
                 ('Commercial', 'Commercial Customer'),
                 ('Residential', 'Risidential Customer'),
                 ], string = "Type of Customer", help = "Type of Customer", default = "Commercial", required = True)

and modify_create_quotation.xml here

<?xml version="1.0" encoding="utf-8"?>
<openerp>
   <data>
      <record model = "ir.ui.view" id = "modify_view_sale">
         <field name ="name">sale.order.form</field>
         <field name = "model">sale.order</field>
         <field name = "inherit_id" ref="sale.view_order_form"></field>
         <field name="arch" type="xml">
            <xpath expr="/form/sheet/group/group[2]/field[@name='client_order_ref']" position="after">
                <field name="type_customer">Type customer</field>
            </xpath>
        </field>
      </record>
   </data>
</openerp>

That seem very simple but please help me. Thank you so much

--------

SOLVE : My bad. The mistake is "selection" and "Selection"

Avatar
Discard

change Type customer into

Hi if our answer is helpful ..please upvote...

Best Answer

Hello,

The reason of why "type_customer" field not available because it is not registered in Database table.

When you inherit models.Model class, it means you have used V8 API. So you have to declare field as follows,

( use Capital "Selection" instead of "selection" )

type_customer = fields.Selection([
                 ('Commercial', 'Commercial Customer'),
                 ('Residential', 'Risidential Customer'),
                 ], string = "Type of Customer", help = "Type of Customer", default = "Commercial", required = True)

Once do any change in py file, please restart your server,

Hope this helps,

Avatar
Discard

In V7 is it small letter "selection"

@aisha, Its not like V7, but when you specially inherit class from models.Model, it will be indeed written in V8.

Best Answer

Try This code in your Py file

class modify_print_content(models.Model):

   _inherit = "sale.order"
   _description = "Modify Print Content"

   type_customer = fields.Selection([
                 ('Commercial', 'Commercial Customer'),
                 ('Residential', 'Risidential Customer'),
                 ], string = "Type of Customer", help = "Type of Customer", default = "Commercial", required = True)

Please check your xpath also 

 

Avatar
Discard
Author Best Answer

Hi Emipro

Thanks for your help. But It's not work. I try to fields.Text too, and It's also not work.

Avatar
Discard

Please correct your xpath