Filtre OR de Django

Salman Mehmood 15 février 2024
Filtre OR de Django

Nous apprendrons avec cette explication rapide et facile comment exécuter des filtres avec une instruction OU individuellement, et nous verrons également comment nous exécutons les filtres avec un objet Q dans le jeu de requêtes Django.

Utiliser le filtre pour exécuter l’instruction OR individuellement et avec l’objet Q dans Django Queryset

Dans cet exemple, nous utiliserons la base de données que nous avons créée et qui a été ajoutée avec certaines données et vous montrerons à quoi cela ressemble.

Exemple de tableau de données

Nous créons un exemple de base; nous allons créer une variable appelée posts et enregistrer toutes les données à l’intérieur de cette variable. Nous allons exécuter un filtre qui nous permettra de créer une simple instruction OU.

Tout d’abord, nous devons sélectionner ce sur quoi nous voulons faire une déclaration OU, alors collectons tous les noms des étudiants, en commençant par austin ou baldwin.

Nous utilisons l’argument surname__startswith et lui transmettons le nom de famille pour extraire tous les enregistrements d’étudiants qui commencent par les noms de famille austin et baldwin.

extraire tous les dossiers des élèves avec ou

Lorsque nous exécutons le serveur, nous voyons qu’il a renvoyé deux éléments.

sortie du 1er code

Nous avons vu un exemple de base avec une instruction OR, mais nous pourrions ajouter un autre filtre et plusieurs instructions OR. Nous allons maintenant travailler sur un autre exemple d’utilisation d’une instruction OR, mais cette fois nous utilisons un objet Q.

Ceci n’est pas une démonstration détaillée d’un objet file d’attente, mais nous dirons qu’il nous permet de construire des requêtes plus complexes en utilisant des objets Q. Nous allons vous montrer un exemple d’utilisation d’objets Q.

L’instruction de code est presque la même, nous allons juste tout enrouler autour d’un objet Q, et après le | opérateur, nous ajouterons un autre objet Q. Nous n’avons pas besoin d’ajouter à nouveau Student.objects.filter().

Nous aurions dû l’écrire en premier et passer le nom de famille à l’argument nom_commencepar.

extraire tous les dossiers des étudiants avec ou et q

Continuons et exécutons cette requête, afin que nous retournions les mêmes résultats.

sortie du 2ème code

Si nous voulons étendre cela, nous pouvons continuer à ajouter à cette déclaration OR aussi souvent que nous le souhaitons. Nous avons ajouté le non ~Q, ce qui signifie sélectionner tous les étudiants sauf lorsque le nom de famille commence par baldwin.

extraire tous les dossiers des élèves avec ou et non q

Maintenant, nous pouvons voir que tout baldwin n’est plus affiché car nous définissons ~, qui est utilisé pour supprimer ou ne pas sélectionner un élément de la base de données.

sortie du 3ème code

Salman Mehmood avatar Salman Mehmood avatar

Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.

LinkedIn