跳至內容
選單
此問題已被標幟
5 回覆
30990 瀏覽次數

There are three compute functions in my code. But I got the error.

Traceback (most recent call last):
  File "/vagrant/odoo/odoo/addons/base/models/ir_http.py", line 237, in _dispatch
    result = request.dispatch()
  File "/vagrant/odoo/odoo/http.py", line 682, in dispatch
    result = self._call_function(**self.params)
  File "/vagrant/odoo/odoo/http.py", line 358, in _call_function
    return checked_call(self.db, *args, **kwargs)
  File "/vagrant/odoo/odoo/service/model.py", line 94, in wrapper
    return f(dbname, *args, **kwargs)
  File "/vagrant/odoo/odoo/http.py", line 346, in checked_call
    result = self.endpoint(*a, **kw)
  File "/vagrant/odoo/odoo/http.py", line 911, in __call__
    return self.method(*args, **kw)
  File "/vagrant/odoo/odoo/http.py", line 530, in response_wrap
    response = f(*args, **kw)
  File "/vagrant/odoo/addons/web/controllers/main.py", line 1359, in call_kw
    return self._call_kw(model, method, args, kwargs)
  File "/vagrant/odoo/addons/web/controllers/main.py", line 1351, in _call_kw
    return call_kw(request.env[model], method, args, kwargs)
  File "/vagrant/odoo/odoo/api.py", line 396, in call_kw
    result = _call_kw_multi(method, model, args, kwargs)
  File "/vagrant/odoo/odoo/api.py", line 383, in _call_kw_multi
    result = method(recs, *args, **kwargs)
  File "/vagrant/odoo/odoo/models.py", line 6165, in onchange
    value = record[name]
  File "/vagrant/odoo/odoo/models.py", line 5640, in __getitem__
    return self._fields[key].__get__(self, type(self))
  File "/vagrant/odoo/odoo/fields.py", line 979, in __get__
    raise ValueError("Compute method failed to assign %s.%s" % (record, self.name))
Exception
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
  File "/vagrant/odoo/odoo/http.py", line 638, in _handle_exception
    return super(JsonRequest, self)._handle_exception(exception)
  File "/vagrant/odoo/odoo/http.py", line 314, in _handle_exception
    raise exception.with_traceback(None) from new_cause 
ValueError: Compute method failed to assign meeting.request(<NewId 0x7f4760a316d8>,).description


I have assigned the value in function. Like name = []、real_date = False、record.editable = False
But it still can't work. I don't know which function is wrong
How can I fix the function? Please give me some suggestions. Thanks!

class Request(models.Model):

_name = 'request'

request_srcmst_names = fields.Char(compute=_compute_request_srcmst_names)

date = fields.Date(compute=compute_date, search=search_date)

@api.depends('request_srcmst_ids') def _compute_request_srcmst_names(self):
self.request_srcmst_names = ''
for record in self: name = [] for request_srcmst in record.request_srcmst_ids: name.append(request_srcmst.meeting_srcmst_id.name) record.request_srcmst_names = ', '.join(name)
@api.depends('start_date') def compute_date(self): self.date = ''
for record in self:  if record.start_date: real_date = pytz.utc.localize(datetime.datetime.strptime(record.start_date, '%Y-%m-%d %H:%M:%S')).astimezone(pytz.timezone(config['timezone'])).date() record.date = real_date


class RequestSrcmst(models.Model):

_name = 'request.srcmst'

editable = fields.Boolean(compute=_compute_editable)

def _compute_editable(self):

self.editable = False
for record in self:  if record.hre_empbas_id.res_users_id.id == self.env.uid or record.create_uid.id == self.env.uid: record.editable = True
頭像
捨棄

Hey,

I see that you have defined a method search_date for the date field but I don't see that method defined in your class. Try defining the method and see if it works.

Thanks and Regards,

Divyansh

最佳答案

In odoo15 Just Add store=True in the field

頭像
捨棄

This worked in Odoo 15, thank you Ajmal.

You are Welcome

最佳答案

Try to add `else` statement. In my case it worked.

Ex:  

        def _compute_editable(self):
self.editable = False
for record in self:
if record.hre_empbas_id.res_users_id.id == self.env.uid or record.create_uid.id == self.env.uid:
record.editable = True
else:
record.editable = False

Hope this will help you.
頭像
捨棄
最佳答案

Hello Xun,

Actually, It is raising errors from the meeting. request model related code. Can you check that code that has any compute field/method? Do you have any custom code related to it?

Thanks

Regards,




Email:      odoo@aktivsoftware.com  

Skype: kalpeshmaheshwari


頭像
捨棄
最佳答案

For anyone who still face this problem, I have that one and even the @Niyas Raphy answer didn't help me to fix it. 

The problem was that I was trying to use compute in a selection field, which is not valid as I can see. I change the compute function to a integer value and this solve my problem.

頭像
捨棄
最佳答案

The VALUE error appears when a value is not the expected type. This can occur when cells are left blank, when a function that is expecting a number is given a text value, and when dates are treated as text by Excel.

Regards,

Rachel Gomez

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
1
7月 23
5998
2
7月 22
10492
2
10月 21
2557
0
8月 21
1445
0
7月 21
3381