There is a problem creating a user with a character that is not in the 7-bit ASCII list inside the login field. For example accented characters in spanish produce the problem. You can create the user the problem arises once you try to access the form of the user again, the following error appears :
File "/usr/lib/python2.6/site-packages/openerp-7.0_20130716_231027-py2.6.egg/openerp/addons/auth_signup/res_users.py", line 87, in _get_signup_url_for_action res[partner.id] = urljoin(base_url, "?%s#%s" % (urlencode(query), urlencode(fragment))) File "/usr/lib/python2.6/urllib.py", line 1269, in urlencode v = quote_plus(str(v)) UnicodeEncodeError: 'ascii' codec can't encode character u'\xa1' in position 0: ordinal not in range(128)
Once I got struck on the same error, When I was write a data into the excel file using xlrd python module. you can ignore the string encoded in ascii example:
str = u'\xa56' print str.encode('ascii') # If this fails then use next line to ignore str.encode('ascii','ignore')
You will get the empty string .
But If you still want to use the string value then django smart_str will work.
in Django1.5 smart_text is used. Copy this .py code and put this in your module link text
from django.utils.encoding import smart_text, smart_unicode,smart_str smart_text(str) smart_str(str) smart_unicode(str)
If you did not able to import the above module then download django zip code link text
get into its directory install django using :
python setup.py install
then open python in shell then use
from django.utils.encoding import smart_text, smart_unicode,smart_str
Please try to give a substantial answer. If you wanted to comment on the question or answer, just use the commenting tool. Please remember that you can always revise your answers - no need to answer the same question twice. Also, please don't forget to vote - it really helps to select the best questions and answers!
About This Community
|Asked: 7/24/13, 10:50 PM|
|Seen: 5242 times|
|Last updated: 3/7/16, 2:08 PM|