Thanks for replying dj.
But it didn't work.
When I use this code:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# coding=utf-8

from google.appengine.ext import db

_CHOICES_FORMATION = (
    unicode('Administração','latin_1'),
    unicode('Design Gráfico','latin_1'),
    unicode('Marketing','latin_1'),
    unicode('Outras','latin_1'),
 )

I got an error:

  File "/home/josir/sist/google_appengine/google/appengine/ext/db/
djangoforms.py", line 170, in get_form_field
    choices.append((str(choice), unicode(choice)))
UnicodeEncodeError: 'ascii' codec can't encode characters in position
10-13: ordinal not in range(128)

What I understand is function get_form_field try to convert choice to
a python string str(choice), where choice is each item of
_CHOICES_FORMATION

Any ideas on how to fix it ?

Josir

On Jan 18, 7:01 pm, djidjadji <[email protected]> wrote:
> In the unicode() call you must specify the encoding used, to decode
> the string to a unicode one. Or pass it a unicode string.
> example unicode(s,'utf-8')
>
> The Django code uses the default encoding string ascii.
>
> Or make a list of objects with a __unicode__() method that returns the
> unicode version of the string.
>
> You could build your choices list with unicode strings
>
>  _CHOICES_FORMATION = (
>      unicode('Administração','latin_1'),
>      unicode('Design Gráfico','latin_1'),
>      unicode('Jornalismo','latin_1'),
>      unicode('Marketing','latin_1'),
>      unicode('Outras','latin_1'),
>  )
> Or use the encoding name that is used to edit the file.
>
> 2011/1/18Josir<[email protected]>:
>
> > Thanks for replying Zeynel.
>
> > I've read this article before but I could not understand how can it
> > help me because it does not have any citation on Django or GA.
>
> > Usually, in pure Python/Django, I use the u' notation and forms and
> > templates understand that the string is unicode.
> > But on GA, it's not working.
>
> > Do you have any specific suggestion/tip on the above code ?
>
> >JosirGomes
>
> > On Jan 18, 2:23 am, Zeynel <[email protected]> wrote:
> >> Can this be helpful to 
> >> youhttp://www.stereoplex.com/blog/python-unicode-and-unicodedecodeerror
>
> >> On Jan 17, 10:53 pm,Josir<[email protected]> wrote:
>
> >> > Hi folks, I have the following code:
>
> >> > _CHOICES_FORMATION = (
> >> >     'Administração',
> >> >     'Design Gráfico',
> >> >     'Jornalismo',
> >> >     'Marketing',
> >> >     'Outras',
> >> > )
>
> >> > class Contact(db.Model):
> >> >     name = db.StringProperty(verbose_name='Nome', required=True)
> >> >     email = db.EmailProperty(verbose_name='E-mail', required=True)
> >> >     phone = db.StringProperty(verbose_name='Telefone')
> >> >     formation = db.StringProperty(
> >> >         verbose_name=u'Formação',
> >> >         choices=_CHOICES_FORMATION,
> >> >         default=_CHOICES_FORMATION[0])
>
> >> > When I try to run it, I got
>
> >> >   File "/home/josir/sist/google_appengine/google/appengine/ext/db/
> >> > djangoforms.py", line 170, in get_form_field
> >> >     choices.append((str(choice), unicode(choice)))
> >> > UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position
> >> > 10: ordinal not in range(128)
>
> >> > To fix it, I tried:
>
> >> > 1)    u'Administração',
>
> >> > 2)   insert the header:
>
> >> > #!/usr/bin/env python
> >> > # -*- coding: utf-8 -*-
> >> > # coding=utf-8
>
> >> > But both solution didn't work. How can I use latin (portuguese)
> >> > characters on choice field ?
>
> >> > Thanks in advance,
> >> >Josir.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to