This question has been flagged
12019 Views


I have this error because a Computed x_text_field filed I am trying to use.

The following code:

def _compute_first (self):
for record in self:
if len(record.x_text_field) >1:
record.x_text_field = u"\u00A0"+ record.x_text_field [1]+"."
else:
record.x_text_field = "empty"
x_text_field = fields.Char(string="x_name", required=True)
initials_first = fields.Char(compute='_compute_first',string="name initials first")


Error:
Odoo Server Error

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 944, in __get__
value = record.env.cache.get(record, self)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 960, in get
value = self._data[field][record.id][key]
KeyError: <odoo.api.Environment object at 0x7fe6d02a1358>

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/odoo/http.py", line 646, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 307, in _handle_exception
raise pycompat.reraise(type(exception), exception, sys.exc_info()[2])
File "/usr/lib/python3/dist-packages/odoo/tools/pycompat.py", line 87, in reraise
raise value
File "/usr/lib/python3/dist-packages/odoo/http.py", line 683, in dispatch
result = self._call_function(**self.params)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 339, in _call_function
return checked_call(self.db, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/service/model.py", line 97, in wrapper
return f(dbname, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 332, in checked_call
result = self.endpoint(*a, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 927, in __call__
return self.method(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/http.py", line 512, in response_wrap
response = f(*args, **kw)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 920, in call_kw
return self._call_kw(model, method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/addons/web/controllers/main.py", line 912, in _call_kw
return call_kw(request.env[model], method, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 689, in call_kw
return call_kw_multi(method, model, args, kwargs)
File "/usr/lib/python3/dist-packages/odoo/api.py", line 680, in call_kw_multi
result = method(recs, *args, **kwargs)
File "/usr/lib/python3/dist-packages/odoo/models.py", line 4976, in onchange
value = record[name]
File "/usr/lib/python3/dist-packages/odoo/models.py", line 4660, in __getitem__
return self._fields[key].__get__(self, type(self))
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 950, in __get__
self.determine_draft_value(record)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1070, in determine_draft_value
self._compute_value(record)
File "/usr/lib/python3/dist-packages/odoo/fields.py", line 1008, in _compute_value
self.compute(records)
File "/usr/lib/python3/dist-packages/odoo/addons/base/ir/ir_model.py", line 30, in <lambda>
func = lambda self: safe_eval(text, SAFE_EVAL_BASE, {'self': self}, mode="exec")
File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 346, in safe_eval
c = test_expr(expr, _SAFE_OPCODES, mode=mode)
File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 211, in test_expr
assert_valid_codeobj(allowed_codes, code_obj, expr)
File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 191, in assert_valid_codeobj
assert_valid_codeobj(allowed_codes, const, 'lambda')
File "/usr/lib/python3/dist-packages/odoo/tools/safe_eval.py", line 187, in assert_valid_codeobj
raise ValueError("forbidden opcode(s) in %r: %s" % (expr, ', '.join(opname[x] for x in codes)))
ValueError: forbidden opcode(s) in 'lambda': STORE_ATTR


What I did wrong?

Avatar
Discard