Problemas con Ñ y tildes

994 views
Skip to first unread message

Jose Miguel Amaya Camacho

unread,
May 26, 2015, 10:59:51 AM5/26/15
to djan...@googlegroups.com
Buenos días estoy trabajando con una base de datos Microsoft SQL Server 2008 con tablas y datos antiguos ya utilizados por otros sistemas de la organización, necesito crear una interfaz web para trabajar algunas opciones que faltan, hasta ahora he logrado crear mis modelos a partir de las tablas y me funciona perfectamente, pero tengo problemas al mostrar aquellos campos que tienen caracteres especiales tales com "ñ" o tildes:
-En el primer caso quise hacer una consulta y guardar en un cvs los datos consultados, leyendolos línea por línea, todo funcionaba bien pero cuando encontraba una ñ me salía el error
UnicodeEncodeError: 'ascii' codec can't encode character
-En el segundo caso cree un ListView para mostrar los datos de una tabla y en el campo nombre deja en blanco aquellos que tienen ñ o tildes.

He probado todo lo que he encontrado en internet pero nada me funciona, inclusive he cambiado el encoding del archivo site.py, de ascii a utf-8, he usado decode y encode y para el primer caso me funciona pero muestra la Ñ como una serie de caracteres raros.
Para mayo precisión les comento que estoy trabajando con el servidor de prueba que tengo corriendo en Windows 7, en un entorno virtual con django 1.8 y uso pyodbc para conectarme con el Sql Server.
Muchas gracias por la ayuda.
Saludos.

monoBOT

unread,
May 26, 2015, 11:13:28 AM5/26/15
to djan...@googlegroups.com
En microsoft sql server hay una opción para definir el tipo de caracteres que admite la base de datos ... miratelo que seguro que van por ahí los tiros.
Si es una base de datos legada seguro que lo tiene en ascii 

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
monoBOT
Visite mi sitio(Visit my site): monobotsoft.es/blog/

Franklin Sarmiento

unread,
May 26, 2015, 11:36:02 AM5/26/15
to Django-es
Saludos, si en tu base de datos te sale bien, ha intentado aplicar al field de tu modelo el field_name.encode('utf-8')
FGSC

Jose Miguel Amaya Camacho

unread,
May 26, 2015, 11:44:59 AM5/26/15
to djan...@googlegroups.com
Si ya lo hice, funciona la Ñ la muestra como una serie de caracteres raros, pero cuando uso la vista basada en LisView me muestra el campo vacio.

Marcos Lewis

unread,
May 26, 2015, 11:52:31 AM5/26/15
to djan...@googlegroups.com
Hubo una vez que tuve que utilizar un SQLServer y lo pude resolver haciendo un decode de ese campo.
Tenía algo parecido a:

class Algo(models.Model):
    description= models.CharField(....)
    campo = models.CharField(....)

    def get_campo(self):
        return u"%s" % self.campo.decode('latin1')

    def __str__(self):
        return self.description.decode('latin1')


y en el template:
{{ object.get_campo }}

...puede ir por ahí la solución.

Jose Miguel Amaya Camacho

unread,
May 26, 2015, 12:21:24 PM5/26/15
to djan...@googlegroups.com
Funciona pero la Ñ me aparece de esta forma Ñ, no hay forma de mostrarlo como tal.

Marcos Lewis

unread,
May 26, 2015, 1:52:12 PM5/26/15
to djan...@googlegroups.com
El 26 de mayo de 2015, 13:21, Jose Miguel Amaya Camacho <miguel....@gmail.com> escribió:
Funciona pero la Ñ me aparece de esta forma Ñ, no hay forma de mostrarlo como tal.

Ahí ya tendrías que ver el encoding de tu html.
agregarle <meta charset="utf-8">
o agregarle el método __unicode__ a la clase.

Franklin Sarmiento

unread,
May 26, 2015, 2:17:36 PM5/26/15
to Django-es
Saludos, 

Marcos tiene razón, ya sería un meta tag que te hace falta en tu html principal.

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
FGSC

Jose Miguel Amaya Camacho

unread,
May 26, 2015, 4:56:13 PM5/26/15
to djan...@googlegroups.com
Buenas tardes ya solucione el problema, no tiene nada que ver con el encodign del HTML, simplemente cree un método así:
def decodifica_campo(self,campo):
        return u"%s" % campo

Jorge Andrés Vergara Ebratt

unread,
May 26, 2015, 4:59:39 PM5/26/15
to djan...@googlegroups.com
hmmmmm creo que lo más sencillo es colocar esta linea al principio de tu documento de python
# -*- encoding: utf-8 -*-
Jorge Andres Vergara Ebratt
#SoftwareDeveloper (Or at least trying to be)
@javebratt

Franklin Sarmiento

unread,
May 26, 2015, 5:33:01 PM5/26/15
to Django-es
Saludos Jorge Andrés, creo que eso no va a funcionar en templates, el problema que tiene el que origino el tema es en el template, ya que no tiene ningún error de compilación relacionado al encoding, solo no esta mostrando la info como debería ser.

Nekmo

unread,
May 26, 2015, 5:42:37 PM5/26/15
to djan...@googlegroups.com
No tiene nada que ver.


Un cordial saludo:
-- Nekmo.

Sitio web: http://nekmo.com
Dirección de contacto: cont...@nekmo.com
XMPP/Jabber: cont...@nekmo.com
Google+: Nekmo Com
Reply all
Reply to author
Forward
0 new messages