Heim > Datenbank > MySQL-Tutorial > Wie ordne ich Django-Abfrageergebnisse mit NULLS LAST in PostgreSQL an?

Wie ordne ich Django-Abfrageergebnisse mit NULLS LAST in PostgreSQL an?

Linda Hamilton
Freigeben: 2024-12-30 22:32:11
Original
759 Leute haben es durchsucht

How to Order Django Query Results with NULLS LAST in PostgreSQL?

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))
Nach dem Login kopieren

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:

  • Django 1.11: https://docs.djangoproject.com/en/dev/releases/1.11/#expression-asc-and-desc-nulls-first-and-nulls-last-parameters
  • Django 3.1: https://docs.djangoproject.com/en/3.1/ref/models/expressions/#using-f-to-sort-null-values

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage