Seguramente hay varias opciones, podes hacer varios replace (uno por
letra), podes usar translate o tambien podes usar algo como esto que
surgio hace poco en la lista de PyAr:
>>>>> unicodedata.normalize("NFKD", u'Manuel Quiñones').encode('ASCII', 'ignore')
>> 'Manuel Quinones'
[...]
>> Me explico:
>> -si pongo Garcia me tendría que encontrar los apellidos Garcia y
>> García.
>>
>> ¿Sabe alguien como se puede hacer esto?
>>
>
> Seguramente hay varias opciones, podes hacer varios replace (uno por
> letra), podes usar translate o tambien podes usar algo como esto que
> surgio hace poco en la lista de PyAr:
>
>>>>>> unicodedata.normalize("NFKD", u'Manuel Quiñones').encode('ASCII', 'ignore')
>>> 'Manuel Quinones'
El problema de eso es que tienes que aplicar el post-procesado despues
de hacer una query que te devuelva todos los resultados. Si hay pocos
registros, no hay problema, pero eso no va a escalar.
En el lado de las BD, entiendo que MySQL permite especificar el
"collation" de la BD. Eso podría ayudar.
En PostgreSQL, entiendo que no es posible explotar el "collation",
pues no se puede especificar uno distinto por cada BD. Lo que se me
ocurre es escribir el codigo de post-procesado (i.e, normalización) en
alguno de los lenguajes de procedimientos almacenados de Postgres
(entiendo que se pueden incluso escribir en Python!), y luego se
podría aplicar un "functional index" para acelerar las queries que
hagan comparaciones en que se aplique la funcion almacenada sobre la
columna en cuestión.
En resumen: No tengo idea como resolver el problema el concreto, pero
los keywords que puse más arriba pueden ser buenos puntos para
explorar.
--
Leo Soto M.
http://blog.leosoto.com
Tal vez podrias considerar el uso de slugs. No se como se comportan
exactamente con los acentos pero basicamente son cadenas de caracteres
que contienen solo alfanumericos y guiones bajos. Django tiene un
filtro para convertir a slug y un campo para guardarlos en la base de
datos.
+1. Definitivamente sencillo y práctico!
A cada rato reviso el sitio www.django.es y es una pena que este tan
desactualizado, muchos en la lista fueron capaces de la traducción del
libro de Django (aplausos para todos ellos). Porque no le damos un poco
de via a este sitio que a fin de cuenta puede ser el sitio de Django de
la comunidad de habla hispana?
salu2
Roylan