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!