Heim >Datenbank >MySQL-Tutorial >Wie ordne ich Django-Abfrageergebnisse mit NULLS LAST in PostgreSQL an?
Anordnen von Abfrageergebnissen mit „NULLS LAST“ in Django
Bei der Arbeit mit PostgreSQL stoßen Sie möglicherweise auf ein Szenario, in dem Sie das Modell sortieren möchten Ergebnisse, bei denen Nicht-Null-Werte Vorrang vor Nullen haben, unter Verwendung der Funktion „NULLS LAST“ Option.
Versuch und Problem
Ein erster Ansatz mit extra(order_by=('-price', 'NULLS LAST')) kann zu dem Fehler führen: „ Das Schlüsselwort „NULLS LAST“ kann nicht in aufgelöst werden Feld."
Lösung
Um das gewünschte Sortierverhalten zu erreichen, verwenden Sie die folgende in Django 1.11 eingeführte Lösung:
from django.db.models import F MyModel.objects.all().order_by(F('price').desc(nulls_last=True))
Diese Syntax verwendet der von Django bereitgestellte F-Ausdruck, mit dem Sie die Feldsortierung mit anpassbaren Parametern angeben können. Das Argument desc(nulls_last=True) stellt sicher, dass Nullwerte als letzte Elemente in den sortierten Ergebnissen behandelt werden.
Referenz
Weitere Informationen finden Sie im offiziellen Django-Dokumentation für die Versionen 1.11 und 3.1:
Das obige ist der detaillierte Inhalt vonWie ordne ich Django-Abfrageergebnisse mit NULLS LAST in PostgreSQL an?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!