This question has been flagged
6 Replies
10238 Views

2014-09-05 10:47:12,462 20595 ERROR test_v8 openerp.http: Exception during JSON request handling.
Traceback (most recent call last):
  File "/opt/odoo/odoo-8.0/openerp/http.py", line 476, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/opt/odoo/odoo-8.0/openerp/http.py", line 495, in dispatch
    result = self._call_function(**self.params)
  File "/opt/odoo/odoo-8.0/openerp/http.py", line 311, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/opt/odoo/odoo-8.0/openerp/service/model.py", line 113, in wrapper
    return f(dbname, *args, **kwargs)
  File "/opt/odoo/odoo-8.0/openerp/http.py", line 308, in checked_call
    return self.endpoint(*a, **kw)
  File "/opt/odoo/odoo-8.0/openerp/http.py", line 685, in __call__
    return self.method(*args, **kw)
  File "/opt/odoo/odoo-8.0/openerp/http.py", line 360, in response_wrap
    response = f(*args, **kw)
  File "/opt/odoo/odoo-8.0/addons/web/controllers/main.py", line 945, in call_button
    action = self._call_kw(model, method, args, {})
  File "/opt/odoo/odoo-8.0/addons/web/controllers/main.py", line 933, in _call_kw
    return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
  File "/opt/odoo/odoo-8.0/openerp/api.py", line 234, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/odoo-8.0/openerp/addons/base/module/wizard/base_module_upgrade.py", line 104, in upgrade_module
    openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
  File "/opt/odoo/odoo-8.0/openerp/modules/registry.py", line 324, in new
    openerp.modules.load_modules(registry._db, force_demo, status, update_module)
  File "/opt/odoo/odoo-8.0/openerp/modules/loading.py", line 353, in load_modules
    force, status, report, loaded_modules, update_module)
  File "/opt/odoo/odoo-8.0/openerp/modules/loading.py", line 263, in load_marked_modules
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
  File "/opt/odoo/odoo-8.0/openerp/modules/loading.py", line 228, in load_module_graph
    registry.setup_models(cr, partial=True)
  File "/opt/odoo/odoo-8.0/openerp/modules/registry.py", line 167, in setup_models
    model._setup_fields(cr, SUPERUSER_ID, partial=partial)
  File "/opt/odoo/odoo-8.0/openerp/api.py", line 234, in wrapper
    return old_api(self, *args, **kwargs)
  File "/opt/odoo/odoo-8.0/openerp/api.py", line 329, in old_api
    result = method(recs, *args, **kwargs)
  File "/opt/odoo/odoo-8.0/openerp/models.py", line 2991, in _setup_fields
    field.setup(self.env)
  File "/opt/odoo/odoo-8.0/openerp/fields.py", line 374, in setup
    self._setup(env)
  File "/opt/odoo/odoo-8.0/openerp/fields.py", line 381, in _setup
    self._setup_regular(env)
  File "/opt/odoo/odoo-8.0/openerp/fields.py", line 1527, in _setup_regular
    invf = env[self.comodel_name]._fields[self.inverse_name]
KeyError: 'sale_line_id'

Avatar
Discard
Best Answer

The error says there is one2many or related field is defined in such a way

line_ids: fields.one2many('sale.order.line','sale_line_id','Order lines')

 

but the field 'sale_line_id' doesn't exists in respective model in database.

 

Avatar
Discard
Best Answer

hey! hello you may declared it in under model but u forgot to give it in __init__.py in models :)

Avatar
Discard
Best Answer

Usually look at the last lines. It says here `KeyError: 'sale_line_id'`. Probably in your code you are trying to call something `object.sale_line_id` but there is no field on that object or the id you are passing to that method is wrong. Can't say much without seeing the code but usually last lines give more info.

Avatar
Discard
Author

the trace have no details about the module or the file where I've to find in !!!!

no, it does not, because you are trying to upgrade some module.. so you should know what is the last module you were working on, or whyt is the last module you addes to server, that could cause hte error.... after all you can search|grep for "sale_line_id" ... HINT: module is dealing with sale order lines.. and sale order object has no sale_line_id... it is en example of not openerp/odoo not folowing naming convention... in v7 the field is : 'order_line': fields.one2many ... same name is in v8.... and it goes on back to v5 :)

Best Answer

Hi 

I was also getting same issue, Some how I am able to resolve it. Might be it is not correct solution but it helped me.

In my case I declared my Parent object with out fields, after that declared my child class completely then declare my parent class with fields and methods. 

example:

class MedicalInpatientMedication (models.Model):

    _name = "medical.inpatient.medication"

class MedicalInpatientMedicationAdminTime(models.Model):

    _name = "medical.inpatient.medication.admin.time"

    _description = 'Inpatient Medication Admin Times'

    name = fields.Many2one('medical.inpatient.medication', 'Medication')

    admin_time = fields.Datetime("Date",default=fields.Datetime.now)

health_professional = fields.Many2one('medical.physician','Health Professional,)

   class MedicalInpatientMedication (models.Model):

   _inherit = "medical.inpatient.medication"

   _inherits={'medical.medication.template' : 'medication_id'}

   _description = "Inpatient Medication"

   medication_id = fields.Many2one('medical.medication.template','medication_id',required=True,ondelete='cascade') discontinued = fields.Boolean('Discontinued') course_completed = fields.Boolean('Course Completed') admin_times = fields.One2many('medical.inpatient.medication.admin.time','name', "Admin times")

Avatar
Discard