Django-ODER-Filter

Salman Mehmood 15 Februar 2024
Django-ODER-Filter

Wir werden mit dieser schnellen und einfachen Erklärung lernen, wie man Filter mit einer OR-Anweisung einzeln ausführt, und wir werden uns auch ansehen, wie wir die Filter mit einem Q-Objekt im Django-Abfragesatz ausführen.

Verwenden Sie den Filter, um die OR-Anweisung einzeln und mit dem Q-Objekt im Django-Abfragesatz auszuführen

In diesem Beispiel verwenden wir die von uns erstellte Datenbank, der einige Daten hinzugefügt wurden, und zeigen Ihnen, wie diese aussieht.

Beispieldatentabelle

Wir erstellen ein einfaches Beispiel; Wir erstellen eine Variable namens posts und speichern alle Daten in dieser Variablen. Wir werden einen Filter ausführen, der es uns ermöglicht, eine einfache OR-Anweisung zu erstellen.

Zuerst müssen wir auswählen, worüber wir eine OR-Aussage machen wollen, also sammeln wir alle Schülernamen, beginnend entweder mit austin oder baldwin.

Wir verwenden das Argument surname__startswith und übergeben es surname, um alle Studentendatensätze zu extrahieren, die mit den Nachnamen austin und baldwin beginnen.

Extrahieren Sie alle Schülerdatensätze mit oder

Wenn wir den Server ausführen, sehen wir, dass er zwei Elemente zurückgegeben hat.

Ausgabe des 1. Codes

Wir haben ein einfaches Beispiel mit einer ODER-Anweisung gesehen, aber wir könnten einen weiteren Filter und mehr ODER-Anweisungen hinzufügen. Jetzt werden wir an einem weiteren Beispiel für die Verwendung einer ODER-Anweisung arbeiten, aber dieses Mal verwenden wir ein Q-Objekt.

Dies ist keine detaillierte Demonstration eines Warteschlangenobjekts, aber wir werden sagen, dass es uns erlaubt, komplexere Abfragen unter Verwendung von Q-Objekten zu erstellen. Wir zeigen Ihnen ein Beispiel für die Verwendung von Q-Objekten.

Die Codeanweisung ist fast die gleiche, wir werden einfach alles um ein Q-Objekt wickeln und nach dem | Operator, fügen wir ein weiteres Q-Objekt hinzu. Wir müssen Student.objects.filter() nicht noch einmal hinzufügen.

Wir hätten dies zuerst ausschreiben und den Nachnamen an das Argument surname__startswith übergeben sollen.

extrahieren Sie alle Schülerdatensätze mit oder und q

Lassen Sie uns fortfahren und diese Abfrage ausführen, damit wir dieselben Ergebnisse zurückgeben.

Ausgabe des 2. Codes

Wenn wir das erweitern wollen, können wir diese ODER-Anweisung beliebig oft ergänzen. Wir haben das nicht ~Q hinzugefügt, was bedeutet, dass alle Schüler ausgewählt werden, ausser wo der Nachname mit baldwin beginnt.

extrahieren Sie alle Schülerdatensätze mit oder und nicht q

Jetzt können wir sehen, dass alle baldwin nicht mehr angezeigt werden, weil wir ~ definieren, das verwendet wird, um ein Element aus der Datenbank zu entfernen oder nicht auszuwählen.

Ausgabe des 3. Codes

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