[pyar] Insertar Ñ con Django en PostgreSQL

Carlos Joel Delgado Pizarro carlosj2585 en gmail.com
Mie Sep 12 17:13:52 ART 2012


Buenas tardes,
tengo un pequeño problema al importar datos a PostgreSQL, utilizando Django.
Tengo un archivo de texto con columnas de ancho fijo, que tiene los 
datos extraidos de ms-sql, una de las líneas tiene la palabra «CAÑETE» 
(que es la que me está dando problemas)

En el models.py tengo el campo

# -*- coding: utf-8 -*-
# codigo codigo codigo
class Unit(models.Model)
     # mas campos
     name = models.CharField(max_length=30, verbose_name='Nombre')
# mas campos

Tengo un script import_data.py que lee los datos desde el archivo de texto

# -*- coding: utf-8 -*-
#codigo codigo

def import_unit_data():
     #codigo codigo
     unit = Unit()
# mas campos
     unit.name = line[35:66].strip()
# mas campos
     unit.save()

si hago un print unit.name sale:
 >>>    CAÑETE
Osea que python/django reconoce la Ñ correcta.
Cuando llamo a ese módulo import_unit_data() desde Django, importa todos 
los datos sin problemas hasta que llega a esa línea sale un error.
Exception Type: 	DatabaseError
Exception Value: 	

value too long for type character varying(1)

Exception Location: 
/usr/local/lib/python2.7/dist-packages/django/db/backends/postgresql_psycopg2/base.py 
in execute, line 52

Y este es el detalle

52.

                 return self.cursor.execute(query, args)

    ...

?Local vars <http://localhost:8000/beneficiarios/importar/#>
Variable 	Value
query 	

'INSERT INTO "unit" ("code", "name", "abrev") VALUES (%s, %s, %s)'

self 	

<django.db.backends.postgresql_psycopg2.base.CursorWrapper object at 0x7f979c043890>

args 	

('9997',
  'CA\xc3\x91ETE',
  'CA\xc3\x91ETE')

e 	

DataError('value too long for type character varying(1)\n',)


la Ñ se convierte en \xc3\x91
Probé haciendo un insert into directamente en PostgreSQL y normal todo, 
no bota error.
si python reconoce la Ñ, Postgres también reconoce la Ñ.... ¿cómo puedo 
arreglar esto?
Probé esto 
http://darkchicles.wordpress.com/2009/04/15/cambiar-la-codificacin-de-caracteres-en-postgres/ 
pero tampoco me ayuda...

-- 
Saludos.

Carlos Joel Delgado Pizarro
Consultor TI-FLOSS
http://carlosjdp.info
http://gplus.to/carlosj2585
Linux User Registered #460895
Ubuntu User Registered #28720

------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120912/9527d105/attachment.html>


More information about the pyar mailing list