2017-06-26 2 views
2

J'essaie slug certaines données, j'utiliser une lower et replace pour changer les caractères spéciaux i besoin:Slugfy filtre sqlalchemy

ma requête est comme ceci:

return Person.query.get(person_id).name.filter(func.lower(func.replace(Person.name, "ç", "c")) 

fonctionne bien, mais Si je reçois un autre personnage comme á ou un autre personnage spécial, ça ne marche pas. Quelqu'un peut me dire la meilleure façon de gérer cela, faire une liste de tous les caractères spéciaux, ou un sqlalchemy a une fonction de slug?

Répondre

3

Vous ne seriez pas en utilisant inférieur et remplacer pour slugify. Essayez une bibliothèque comme: un33k/python-slugify (github). Afin d'obtenir le résultat souhaité, vous pouvez écrire quelque chose comme:

from slugify import slugify 
return Person.query.get(person_id).name.filter(slugify(Person.name)) 

Je ne suis pas sûr que votre requête va travailler, je ne remplacé la partie limaces et je vous recommande de le vérifier d'abord .