The problem is in your __str__() function, because Python 2 use __unicode__() instead of str to return Unicode string. By default p2 return bytes in __str__ and p3 return Unicode.
python_2_unicode_compatible works and I thing it is the best approach because you are support both version 3/2 . I recommend use Python 3 because has less problems with non-ascii characters, but p2 it's OK too. El domingo, 6 de marzo de 2016, Georges H <georges.hi...@gmail.com> escribió: > OK thanks > Without the python_2_unicode_compatible decorator before my class, it does not work. > > Le dimanche 6 mars 2016 14:11:41 UTC+1, Vijay Khemlani a écrit : >> >> Do you know why you had the problem in the first place or are you just copy-pasting code? >> If you only need to support one version of Python (either 2.x or 3.x) there is no need to use the python_2_unicode_compatible decorator >> On Sun, Mar 6, 2016 at 8:14 AM, Georges H <george...@gmail.com> wrote: >>> >>> OK Thanks but I solved this little problem by adding at the top of my models.py: >>> django.utils.encoding import from python_2_unicode_compatible >>> >>> >>> And always in models.py before each class: >>> @ python_2_unicode_compatible >>> Perfect! >>> Le dimanche 6 mars 2016 03:16:35 UTC+1, Vijay Khemlani a écrit : >>>> >>>> The error you are seeing is at the application level, not database, so I don't think postgres is at fault. >>>> Post the full stack trace for the error and the relevant part of your code when it fails. >>>> On Sat, Mar 5, 2016 at 3:28 PM, Georges H <george...@gmail.com> wrote: >>>>> >>>>> Hi to all the Django community ! >>>>> I started with Django. >>>>> I have a small form that works pretty well, and that will store the data in a Postgres database, that's fine. >>>>> OK, except that when I have a special character to enter (like an accent, I am french), I get an error (No problem without special characters): >>>>> 'Ascii' codec can not encode character u '\ xe9' in position 0: ordinal not in range (128) >>>>> Yet I thought the default Django was utf8... >>>>> So I tried to add in settings.py: >>>>> LANGUAGE_CODE = 'en-us' >>>>> LANG = 'UTF-8' >>>>> LC_ALL = 'UTF-8' >>>>> DEFAULT_CHARSET = 'utf-8' >>>>> But it does not change ... >>>>> I notice that if my base postgres is encoded in UTF-8 (when I do a "SHOW SERVER_ENCODING"); the "client" is it in Unicode (when I do a "SHOW CLIENT_ENCODING"). >>>>> Is it linked? >>>>> I also notice that the "local" command at the root of my Django project returns me: >>>>> LANG = en_US.UTF-8 >>>>> LC_CTYPE = "en_US.UTF-8" >>>>> LC_NUMERIC = "en_US.UTF-8" >>>>> LC_TIME = "en_US.UTF-8" >>>>> LC_COLLATE = "en_US.UTF-8" >>>>> LC_MONETARY = "en_US.UTF-8" >>>>> LC_MESSAGES = "en_US.UTF-8" >>>>> LC_PAPER = "en_US.UTF-8" >>>>> Lc_name = "en_US.UTF-8" >>>>> LC_ADDRESS = "en_US.UTF-8" >>>>> LC_TELEPHONE = "en_US.UTF-8" >>>>> LC_MEASUREMENT = "en_US.UTF-8" >>>>> LC_IDENTIFICATION = "en_US.UTF-8" >>>>> LC_ALL = >>>>> With "LC_ALL" empty !!! So it is that I did not understand where to put this setting... >>>>> How can I force Django to operate only in UTF-8? Or another approach? >>>>> >>>>> THX! >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google Groups "Django users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com. >>>>> To post to this group, send email to django...@googlegroups.com. >>>>> Visit this group at https://groups.google.com/group/django-users. >>>>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/bd87c68d-730a-49f6-892f-bb398ed4d1b1%40googlegroups.com . >>>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >>> You received this message because you are subscribed to the Google Groups "Django users" group. >>> To unsubscribe from this group and stop receiving emails from it, send an email to django-users...@googlegroups.com. >>> To post to this group, send email to django...@googlegroups.com. >>> Visit this group at https://groups.google.com/group/django-users. >>> To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/b9b18216-e21f-4195-8ae3-b3cfbed70c31%40googlegroups.com . >>> For more options, visit https://groups.google.com/d/optout. >> > -- > You received this message because you are subscribed to the Google Groups "Django users" group. > To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. > To post to this group, send email to django-users@googlegroups.com. > Visit this group at https://groups.google.com/group/django-users. > To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/d17cffcc-d595-485c-8203-ad8dfaeb7412%40googlegroups.com . > For more options, visit https://groups.google.com/d/optout. > -- "La utopía sirve para caminar" Fernando Birri -- You received this message because you are subscribed to the Google Groups "Django users" group. To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscr...@googlegroups.com. To post to this group, send email to django-users@googlegroups.com. Visit this group at https://groups.google.com/group/django-users. To view this discussion on the web visit https://groups.google.com/d/msgid/django-users/CAG%2B5VyM1sq7bcSZAemHUK3TcGm-D-L4A3sU0dsDSjr_5fxFZag%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.