Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
5 Risposte
18226 Visualizzazioni

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

Avatar
Abbandona
Risposta migliore




@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)


Avatar
Abbandona
Autore

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

Autore Risposta migliore

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

Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
1
ott 23
2114
2
ott 23
2362
2
ago 23
4405
4
ago 23
20756
3
ott 22
11175