171 votes

équivalent sql "LIKE" dans une requête django

Quel est l'équivalent de cette instruction SQL dans django ?

SELECT * FROM table_name WHERE string LIKE pattern;

Comment puis-je implémenter cela dans django ? J'ai essayé

result = table.objects.filter( pattern in string )

Mais cela n'a pas fonctionné. Comment puis-je le mettre en œuvre ?

3voto

junior_software Points 704

Exemple complet : disons que nous avons une table appelée DjangTable avec un champ de type chaîne nom_fichier et que nous voulons créer un filtre Django équivalent à la requête qui correspond à l'espace dans la chaîne nom_fichier dans mysql :

SELECT * FROM DjangTable WHERE file_name LIKE '% %' 
class DjangTable(UTModel):

    ...
    file_name = models.CharField(max_length=255, null=False)
    ...

dans Django en utilisant python, ce sera :

pattern = ' ' # same as mysql LIKE '% %'
DjangTable.objects.filter(file_name__contains=pattern)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X