Al intentar actualizar un registro desde una clase a otra me genera un KeyError, en mi codigo tengo:
@api.depends('mode')
def _get_num_proceso(self):
for r in self:
year = fields.Date.today()
if r.mode == 'open':
ConsCA = self.env['test.cons'].search([])[-1].ConsCA
r.num_proceso = 'CA-CAB-00%d-%.4s' % (ConsCA,year)
ConsCA = ConsCA + 1
IncreaseCA = self.env['test.cons'].search([])[-1]
IncreaseCA.write({'ConsCA': ConsCA})
la idea es incrementar en 1 el campo que esta en el modelo test.cons segun la condicion ya que "mode" es un select con 7 opciones por lo que en "test.cons" hay 7 campos y un unico registro en el que de acuerdo al valor de "mode" se incrementara/actualizara el campo en aquel registro, obvio solo pongo el codigo resumido ya que lo demas es lo mismo variando solo el valor de "mode", espero alguien sepa como solucionar esto, aqui les dejo el error:
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 638, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 675, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 331, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/odoo/service/model.py", line 101, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 324, in checked_call
result = self.endpoint(*a, **kw)
File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 933, in __call__
return self.method(*args, **kw)
File "/usr/lib/python2.7/dist-packages/odoo/http.py", line 504, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python2.7/dist-packages/odoo/addons/web/controllers/main.py", line 885, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/usr/lib/python2.7/dist-packages/odoo/addons/web/controllers/main.py", line 877, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 679, in call_kw
return call_kw_model(method, model, args, kwargs)
File "/usr/lib/python2.7/dist-packages/odoo/api.py", line 664, in call_kw_model
result = method(recs, *args, **kwargs)
File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 3830, in create
record = self.browse(self._create(old_vals))
File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 3997, in _create
self.recompute()
File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 5312, in recompute
vals = rec._convert_to_write({n: rec[n] for n in ns})
File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 5312, in <dictcomp>
vals = rec._convert_to_write({n: rec[n] for n in ns})
File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 5211, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/usr/lib/python2.7/dist-packages/odoo/fields.py", line 873, in __get__
value = record._cache[self]
File "/usr/lib/python2.7/dist-packages/odoo/models.py", line 5559, in __getitem__
value = self._recs.env.cache[field][self._recs.id]
KeyError: 12
En KeyError se va incrementando segun tantas veces se intente calcular el campo que depende de "mode" en el @api.depends al crear el registro en mi clase principal. Saludos.