New model added via Studio causes a KeyError on a computed field - odoo

[Odoo v13 cloud edition]
I've added a new model via Studio: crm.lead.activities. In that model I have a computed field x_name:
Dependencies: x_res_id, x_date, x_activity_type_id
Compute:
for record in self:
record['x_name'] = record.x_res_id.name + ' / ' + str(record.x_date) + ' / ' + record.x_activity_type_id.name
x_res_id is a many2one field to crm.lead
But when I try to (un)install a module, I get a KeyError. What can I do to solve this?
Odoo Server Error
Traceback (most recent call last):
File "/home/odoo/src/odoo/13.0/odoo/http.py", line 624, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/odoo/src/odoo/13.0/odoo/http.py", line 310, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/home/odoo/src/odoo/13.0/odoo/tools/pycompat.py", line 14, in reraise
raise value
File "/home/odoo/src/odoo/13.0/odoo/http.py", line 669, in dispatch
result = self._call_function(**self.params)
File "/home/odoo/src/odoo/13.0/odoo/http.py", line 350, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/odoo/src/odoo/13.0/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/home/odoo/src/odoo/13.0/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/home/odoo/src/odoo/13.0/odoo/http.py", line 915, in __call__
return self.method(*args, **kw)
File "/home/odoo/src/odoo/13.0/odoo/http.py", line 515, in response_wrap
response = f(*args, **kw)
File "/home/odoo/src/odoo/13.0/addons/web/controllers/main.py", line 1326, in call_button
action = self._call_kw(model, method, args, kwargs)
File "/home/odoo/src/odoo/13.0/addons/web/controllers/main.py", line 1314, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/odoo/src/odoo/13.0/odoo/api.py", line 387, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/home/odoo/src/odoo/13.0/odoo/api.py", line 374, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-66>", line 2, in button_immediate_upgrade
File "/home/odoo/src/odoo/13.0/odoo/addons/base/models/ir_module.py", line 72, in check_and_log
return method(self, *args, **kwargs)
File "/home/odoo/src/odoo/13.0/odoo/addons/base/models/ir_module.py", line 634, in button_immediate_upgrade
return self._button_immediate_function(type(self).button_upgrade)
File "/home/odoo/src/custom/trial/saas_trial/models/module.py", line 99, in _button_immediate_function
res = super(IrModuleModule, self)._button_immediate_function(function)
File "/home/odoo/src/odoo/13.0/odoo/addons/base/models/ir_module.py", line 573, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/home/odoo/src/odoo/13.0/odoo/modules/registry.py", line 86, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/home/odoo/src/odoo/13.0/odoo/modules/loading.py", line 369, in load_modules
registry.setup_models(cr)
File "/home/odoo/src/odoo/13.0/odoo/modules/registry.py", line 290, in setup_models
for path in transitive_dependencies(field):
File "/home/odoo/src/odoo/13.0/odoo/modules/registry.py", line 276, in transitive_dependencies
for seq2 in transitive_dependencies(seq1[-1], seen + [field]):
File "/home/odoo/src/odoo/13.0/odoo/modules/registry.py", line 272, in transitive_dependencies
for seq1 in dependencies[field]:
KeyError: x_crm.lead.activities.x_name

Related

Error odoo.exceptions.UserError: No data has been found I can't update rate on odoo14

I have this problem in odoo 14 when I update rate, I don't know why but it does not update the rate and it tells me that no data has been found
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
result = request.dispatch()
File "/usr/lib/python3/dist-packages/odoo/http.py", line 685, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 361, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 94, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 349, in checked_call
result = self.endpoint(*a, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 914, in __call__
return self.method(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 533, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1388, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 1380, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 399, in call_kw
result = _call_kw_multi(method, model, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 386, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "/mnt/alimentos_dms/fc_currency_rate_live/models/res_company.py", line 120, in update_currency_rates_bcv
self.env.company.update_currency_rates()
File "/mnt/enterprise/currency_rate_live/models/res_config_settings.py", line 232, in update_currency_rates
parse_results = parse_function(active_currencies)
File "/mnt/alimentos_dms/fc_currency_rate_live/models/res_company.py", line 64, in _parse_bcv_data
dictionary = self.get_dictionary(date, date, 'USD')
File "/mnt/alimentos_dms/fc_currency_rate_live/models/res_company.py", line 46, in get_dictionary
dictionary = gr.get_exchange_rate(currency, from_date, end_date, self.env)
File "/mnt/alimentos_dms/fc_currency_rate_live/models/getrate.py", line 161, in get_exchange_rate
raise UserError(_("No data found."))
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/http.py", line 641, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 317, in _handle_exception
raise exception.with_traceback(None) from new_cause
odoo.exceptions.UserError: No data has been found
here it's the getrate.py, but i don't understand why don't read the information
`
def get_exchange_rate(self, currency, date, to_date=None, env=False):
data_frame = self._data_frame(currency, date, to_date or date)
if data_frame is not None:
data = self._to_dict(data_frame)
if date and not to_date:
date = datetime.strptime(date, '%d/%m/%Y')
return data[date.strftime(self.date_format)]
return data
else:
raise UserError(_("No data found."))
`

Odoo Error when installing module KeyError

I am getting the following error when installing a module, I could use some help. How can I fix it?
I am working with odoo v12
Odoo Server Error
Traceback (most recent call last):
File "/home/ernesto/odoo12/odoo/http.py", line 656, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/home/ernesto/odoo12/odoo/http.py", line 314, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/home/ernesto/odoo12/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/home/ernesto/odoo12/odoo/http.py", line 698, in dispatch
result = self._call_function(**self.params)
File "/home/ernesto/odoo12/odoo/http.py", line 346, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/home/ernesto/odoo12/odoo/service/model.py", line 98, in wrapper
return f(dbname, *args, **kwargs)
File "/home/ernesto/odoo12/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/home/ernesto/odoo12/odoo/http.py", line 941, in __call__
return self.method(*args, **kw)
File "/home/ernesto/odoo12/odoo/http.py", line 519, in response_wrap
response = f(*args, **kw)
File "/home/ernesto/odoo12/addons/web/controllers/main.py", line 966, in call_button
action = self._call_kw(model, method, args, {})
File "/home/ernesto/odoo12/addons/web/controllers/main.py", line 954, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/home/ernesto/odoo12/odoo/api.py", line 759, in call_kw
return _call_kw_multi(method, model, args, kwargs)
File "/home/ernesto/odoo12/odoo/api.py", line 746, in _call_kw_multi
result = method(recs, *args, **kwargs)
File "<decorator-gen-61>", line 2, in button_immediate_install
File "/home/ernesto/odoo12/odoo/addons/base/models/ir_module.py", line 74, in check_and_log
return method(self, *args, **kwargs)
File "/home/ernesto/odoo12/odoo/addons/base/models/ir_module.py", line 445, in button_immediate_install
return self._button_immediate_function(type(self).button_install)
File "/home/ernesto/odoo12/odoo/addons/base/models/ir_module.py", line 561, in _button_immediate_function
modules.registry.Registry.new(self._cr.dbname, update_module=True)
File "/home/ernesto/odoo12/odoo/modules/registry.py", line 86, in new
odoo.modules.load_modules(registry._db, force_demo, status, update_module)
File "/home/ernesto/odoo12/odoo/modules/loading.py", line 421, in load_modules
loaded_modules, update_module, models_to_check)
File "/home/ernesto/odoo12/odoo/modules/loading.py", line 313, in load_marked_modules
perform_checks=perform_checks, models_to_check=models_to_check
File "/home/ernesto/odoo12/odoo/modules/loading.py", line 222, in load_module_graph
load_data(cr, idref, mode, kind='data', package=package, report=report)
File "/home/ernesto/odoo12/odoo/modules/loading.py", line 68, in load_data
tools.convert_file(cr, package.name, filename, idref, mode, noupdate, kind, report)
File "/home/ernesto/odoo12/odoo/tools/convert.py", line 798, in convert_file
convert_csv_import(cr, module, pathname, fp.read(), idref, mode, noupdate)
File "/home/ernesto/odoo12/odoo/tools/convert.py", line 841, in convert_csv_import
result = env[model].load(fields, datas)
File "/home/ernesto/odoo12/odoo/models.py", line 943, in load
for id, xid, record, info in converted:
File "/home/ernesto/odoo12/odoo/models.py", line 1068, in _convert_records
for record, extras in stream:
File "/home/ernesto/odoo12/odoo/tools/misc.py", line 859, in next
val = next(self.stream, _ph)
File "/home/ernesto/odoo12/odoo/models.py", line 991, in _extract_records
for index, fnames in enumerate(fields_)
File "/home/ernesto/odoo12/odoo/models.py", line 992, in <listcomp>
if fields[fnames[0]].type == 'one2many'
KeyError: 'id
I am getting the following error when installing a module, I could use some help. How can I fix it?
I am working with odoo v12
The error occurs when Odoo tries to import a CSV file.
Check the CSV files listed in the data section of the manifest file.
Maybe there is an apostrophe or blank spaces just before the id field name. You can reproduce a similar error using the following CSV file:
'id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
access_product_product_account_user,product.product.account.user,product.model_product_product,group_account_user,1,0,0,0

Odoo 12 Server Error KeyError: 'crm.Stage'

I am a starter in odoo. Can anyone help me to find a solution for the problem mentioned below?
In CRM Module I'm getting this below this error when I save any record in CRM Module, it was working fine for a while but idk after sometime when I create or change any record this error pops up
Error:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/odoo-12.0/odoo/http.py", line 656, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 314, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/opt/odoo/odoo-12.0/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/opt/odoo/odoo-12.0/odoo/http.py", line 698, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 346, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo-12.0/odoo/service/model.py", line 98, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 339, in checked_call
result = self.endpoint(*a, **kw)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 941, in __call__
return self.method(*args, **kw)
File "/opt/odoo/odoo-12.0/odoo/http.py", line 519, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo-12.0/addons/web/controllers/main.py", line 962, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo-12.0/addons/web/controllers/main.py", line 954, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/opt/odoo/odoo-12.0/odoo/api.py", line 757, in call_kw
return _call_kw_model_create(method, model, args, kwargs)
File "/opt/odoo/odoo-12.0/odoo/api.py", line 737, in _call_kw_model_create
result = method(recs, *args, **kwargs)
File "<decorator-gen-260>", line 2, in create
File "/opt/odoo/odoo-12.0/odoo/api.py", line 461, in _model_create_multi
return create(self, [arg])
File "/opt/odoo/odoo-12.0/addons/base_automation/models/base_automation.py", line 228, in create
records = create.origin(self.with_env(actions.env), vals_list, **kw)
File "<decorator-gen-116>", line 2, in create
File "/opt/odoo/odoo-12.0/odoo/api.py", line 462, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo-12.0/addons/mail/models/mail_thread.py", line 272, in create
threads = super(MailThread, self).create(vals_list)
File "<decorator-gen-3>", line 2, in create
File "/opt/odoo/odoo-12.0/odoo/api.py", line 462, in _model_create_multi
return create(self, arg)
File "/opt/odoo/odoo-12.0/odoo/models.py", line 3534, in create
vals = self._add_missing_default_values(vals)
File "/opt/odoo/odoo-12.0/odoo/models.py", line 1700, in _add_missing_default_values
defaults = self.default_get(list(missing_defaults))
File "/opt/odoo/odoo-12.0/odoo/models.py", line 1168, in default_get
defaults[name] = field.default(self)
File "/opt/odoo/odoo-12.0/crm_internal_new/crm_extended/models/crm_lead_extended.py", line 37, in get_default_won_id1
return self.env['crm.Stage'].search([('name', '=', 'Won')]).id
File "/opt/odoo/odoo-12.0/odoo/api.py", line 831, in __getitem__
return self.registry[model_name]._browse((), self)
File "/opt/odoo/odoo-12.0/odoo/modules/registry.py", line 176, in __getitem__
return self.models[model_name]
KeyError: 'crm.Stage'

Odoo issue : missing record does not exist or has been deleted

In Quotation => New
Select customer => Search more
result => Odoo Error : missing record does not exist or has been deleted
POST http://example.net/web/dataset/call_kw/res.partner/name_search 200 OK :
"Traceback (most recent call last):
File "/mnt/odoo-source/odoo/http.py", line 640, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/mnt/odoo-source/odoo/http.py", line 677, in dispatch
result = self._call_function(**self.params)
File "/mnt/odoo-source/odoo/http.py", line 333, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/mnt/odoo-source/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/mnt/odoo-source/odoo/http.py", line 326, in checked_call
result = self.endpoint(*a, **kw)
File "/mnt/odoo-source/odoo/http.py", line 935, in __call__
return self.method(*args, **kw)
File "/mnt/odoo-source/odoo/http.py", line 506, in response_wrap
response = f(*args, **kw)
File "/mnt/odoo-source/addons/web/controllers/main.py", line 885, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/mnt/odoo-source/addons/web/controllers/main.py", line 877, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/mnt/odoo-source/odoo/api.py", line 679, in call_kw
return call_kw_model(method, model, args, kwargs)
File "/mnt/odoo-source/odoo/api.py", line 664, in call_kw_model
result = method(recs, *args, **kwargs)
File "/mnt/odoo-source/odoo/addons/base/res/res_partner.py", line 681, in name_search
return super(Partner, self).name_search(name, args, operator=operator, limit=limit)
File "/mnt/odoo-source/odoo/models.py", line 1600, in name_search
return self._name_search(name, args, operator, limit=limit)
File "/mnt/odoo-source/odoo/models.py", line 1615, in _name_search
return recs.sudo(access_rights_uid).name_get()
File "/mnt/odoo-source/odoo/addons/base/res/res_partner.py", line 586, in name_get
name = name + "\n" + partner._display_address(without_company=True)
File "/mnt/odoo-source/odoo/addons/base/res/res_partner.py", line 781, in _display_address
address_format = self.country_id.address_format or \
File "/mnt/odoo-source/odoo/fields.py", line 866, in __get__
value = record._cache[self]
File "/mnt/odoo-source/odoo/models.py", line 5562, in __getitem__
return value.get() if isinstance(value, SpecialValue) else value
File "/mnt/odoo-source/odoo/fields.py", line 48, in get
raise self.exception
MissingError: (u'Enregistrement inexistant ou d\xe9truit.', None)
"
I'm stuck with this issue. Anyone know what could i do ?
The issue is solved.
"Country_id" field in "res_partner" table was referencing an unexisting country in "res_country table".

Odoo 8 error when trying to open product with multiple attributes

Our Odoo is version 8 and is running on Ubuntu.
When I try to open product which has multiple attributes (colours, sizes) I get KeyError: 57. Other simple products are OK.
Any idea what can cause this problem ?
here is complete traceback:
Odoo Server Error
Traceback (most recent call last):
File "/opt/odoo/odoo/openerp/http.py", line 530, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/opt/odoo/odoo/openerp/http.py", line 567, in dispatch
result = self._call_function(**self.params)
File "/opt/odoo/odoo/openerp/http.py", line 303, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/opt/odoo/odoo/openerp/service/model.py", line 113, in wrapper
return f(dbname, *args, **kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 300, in checked_call
return self.endpoint(*a, **kw)
File "/opt/odoo/odoo/openerp/http.py", line 796, in __call__
return self.method(*args, **kw)
File "/opt/odoo/odoo/openerp/http.py", line 396, in response_wrap
response = f(*args, **kw)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 949, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/opt/odoo/odoo/addons/web/controllers/main.py", line 932, in _call_kw
records = getattr(request.session.model(model), method)(*args, **kwargs)
File "/opt/odoo/odoo/openerp/http.py", line 900, in proxy
result = meth(cr, request.uid, *args, **kw)
File "/opt/odoo/odoo/openerp/api.py", line 241, in wrapper
return old_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3109, in read
result = BaseModel.read(records, fields, load=load)
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3141, in read
self._read_from_database(stored)
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3305, in _read_from_database
res2 = self._columns[f].get(cr, self._model, ids, f, user, context=context, values=result)
File "/opt/odoo/odoo/openerp/osv/fields.py", line 1361, in get
result = self._fnct(obj, cr, uid, ids, name, self._arg, context)
File "/opt/odoo/odoo/addons/sale/sale.py", line 1283, in _sales_count
res[template.id] = sum([p.sales_count for p in template.product_variant_ids])
File "/opt/odoo/odoo/openerp/fields.py", line 760, in __get__
self.determine_value(record)
File "/opt/odoo/odoo/openerp/fields.py", line 853, in determine_value
record._prefetch_field(self)
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3196, in _prefetch_field
result = records.read(list(fnames), load='_classic_write')
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3141, in read
self._read_from_database(stored)
File "/opt/odoo/odoo/openerp/api.py", line 239, in wrapper
return new_api(self, *args, **kwargs)
File "/opt/odoo/odoo/openerp/models.py", line 3308, in _read_from_database
vals[f] = res2[vals['id']]
KeyError: 57
I got same error like your log, but I don't know your code details. You should check field type.
In my case, I used field function.
I was make mistaken like below:
rec = obj.browse(cr,...)
result = {}
# result[id] = val # wrong
result[rec.id] = val # correct
I hope this helps..