콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
5 답글
18222 화면

this code worked perfect on Friday and today it just stopped working. Any reason?


@api.onchange('res_users_id')

def do_stuff(self):

if self.res_users_id != '':

self.beschreibung = 'Some text' + '\n' + self.beschreibung


Full error message:


Traceback (most recent call last):

File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 530, in _handle_exception

return super(JsonRequest, self)._handle_exception(exception)

File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 567, in dispatch

result = self._call_function(**self.params)

File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 303, in _call_function

return checked_call(self.db, *args, **kwargs)

File "/usr/lib/python2.7/dist-packages/openerp/service/model.py", line 113, in wrapper

return f(dbname, *args, **kwargs)

File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 300, in checked_call

return self.endpoint(*a, **kw)

File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 796, in __call__

return self.method(*args, **kw)

File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 396, in response_wrap

response = f(*args, **kw)

File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 936, in call_kw

return self._call_kw(model, method, args, kwargs)

File "/usr/lib/python2.7/dist-packages/openerp/addons/web/controllers/main.py", line 928, in _call_kw

return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)

File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 241, in wrapper

return old_api(self, *args, **kwargs)

File "/usr/lib/python2.7/dist-packages/openerp/api.py", line 363, in old_api

result = method(recs, *args, **kwargs)

File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 5846, in onchange

record._onchange_eval(name, field_onchange[name], result)

File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 5727, in _onchange_eval

method_res = method(self)

File "/home/vagrant/addons/training/training.py", line 28, in do_stuff

self.beschreibung = 'Some text' + '\n' + self.beschreibung

TypeError: cannot concatenate 'str' and 'bool' objects

아바타
취소
베스트 답변




@api.onchange('res_users_id')
def do_stuff(self):
if self.res_users_id != '':
self.beschreibung = 'Some text' + '\n' + self.beschreibung and self.beschreibung or ""


OR

@api.onchange('res_users_id')
def do_stuff(self):
if self.res_users_id != '':
self.beschreibung = 'Some text' + '\n' + unicode(self.beschreibung)


아바타
취소
작성자

Thank you Temur. This works great I am just curious why it stopped working in the first place also it now seems not to like the "\n" anymore: self.beschreibung = 'Some text' + '\n' + str(self.beschreibung) UnicodeEncodeError: 'ascii' codec can't encode character u'\xf6' in position 25: ordinal not in range(128) I will keep working on it..

You're right, str() will give ascii codec error if it gets unicode string. here unicode() is more appropriate, I'll update my answer with it. Thanks

작성자 베스트 답변

Solved: added unicode instead of str self.beschreibung = 'Some text' + '\n' + unicode(self.beschreibung)

아바타
취소
관련 게시물 답글 화면 활동
1
10월 23
2114
2
10월 23
2362
2
8월 23
4405
4
8월 23
20755
3
10월 22
11175