Was ist das empfohlene Idiom für die Überprüfung, ob eine Abfrage Ergebnisse zurückgegeben hat?
Beispiel:Überprüfen auf leere Abfrage in Django
orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc')
# If any results
# Do this with the results without querying again.
# Else, do something else...
Ich nehme an, es sind dies verschiedene Möglichkeiten zu prüfen, aber ich würde gerne wissen, wie ein erfahrener Django Benutzer es tun würde. Die meisten Beispiele in der Dokumentation nur den Fall ignorieren, wo nichts gefunden wurde ...
Diese scheint auch in der Dokumentation bevorzugt zu sein, zum Beispiel: https: // docs.djangoproject.com/en/1.8/topics/http/shortcuts/#id7 – Wtower
@Wtower Der Code, auf den Sie sich beziehen, hat für den Vertrag 404 zu erzeugen, wenn der Filterausdruck keine Datensätze trifft oder eine "Liste" des Ergebnisses erzeugt, wenn Es gibt Aufzeichnungen. Der Code dort wird die Datenbank nur einmal treffen. Wenn sie 'exist()' oder 'count()' verwenden, um zuerst zu überprüfen, ob Datensätze zurückgegeben werden, treffen sie die Datenbank zweimal (einmal, um sie zu überprüfen, einmal, um die Datensätze zu erhalten). Dies ist eine spezifische Situation. Es bedeutet nicht, dass im * allgemeinen Fall * die bevorzugte Methode, um zu wissen, ob eine Abfrage Datensätze zurückgibt, do 'if queryset: ... ' – Louis
@Louis ist der Code, auf den ich mich beziehe, ist nur ein Beispiel, das es enthält eine Zeile 'if not my_objects:' um zu demonstrieren, dass dies in den Dokumenten so ist. Alles andere ist völlig irrelevant, deshalb verstehe ich Ihre Meinung nicht. Sie könnten auch tausend Fragen stellen und es wäre immer noch völlig irrelevant, da dies nicht der Sinn dieser Antwort ist, mit der ich klarstelle, dass ich dem zustimme. – Wtower