[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