[pyar] Insertar Ñ con Django en PostgreSQL
Carlos Guerrero
guerrerocarlos en gmail.com
Mie Sep 12 18:30:25 ART 2012
Hola Tocayo,
Cómo probaste haciendo el insert into? segun el error que tienes:
"value too long for type character varying(1)"
Parece que es un asunto de como tienes definido ese campo en base de datos[0]
Prueba aumentando la longitud de los demas campos a los que estas
intentando hacer el insert[1]
[0] http://www.postgresql.org/docs/8.0/static/datatype-character.html
[1] http://stackoverflow.com/questions/7747922/value-too-long-for-type-character-varyingn
Saludos Cordiales.
2012/9/12 Carlos Joel Delgado Pizarro <carlosj2585 en gmail.com>
> 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
>
> 1.
>
> 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-FLOSShttp://carlosjdp.infohttp://gplus.to/carlosj2585
> Linux User Registered #460895
> Ubuntu User Registered #28720
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
> La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de
> Argentina - http://www.usla.org.ar
>
--
Atte:
Carlos A. Guerrero M.
http://www.carlosguerrero.com
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20120912/ef77e34d/attachment.html>
More information about the pyar
mailing list