Datensätze sortieren
Teil des Abschnitts Modelle und Admin-Bereich der Django-Journey von Coddy. Lektion 11 von 23.
Das günstigste Buch, das neueste, alle Titel nach Alter aufsteigend: Jede dieser Fragen betrifft die Reihenfolge. order_by() sortiert ein QuerySet nach einem Feld, so wie ordering in Meta dies für alle Datensätze tut, und ein Minuszeichen sortiert absteigend. first() gibt die erste Zeile zurück oder None, wenn es keine gibt, und löst daher anders als get() niemals eine Ausnahme aus:
Book.objects.order_by("-year").first() # <Book: SPQR by Mary Beard>
Book.objects.order_by("-price").values_list("author", flat=True)
# <QuerySet ['Mary Beard', 'Umberto Eco', ...]>values_list() überspringt die Book-Objekte und gibt die Werte eines Felds zurück. Ohne flat=True kommt jeder Wert in einem Tupel mit einem Element, wie ('Mary Beard',).
Aufgabe
MittelSchreibe explore.py so um, dass zwei Zeilen ausgegeben werden:
Cheapest:und der Titel des günstigsten Buches.Titles by year:und eine Liste aller Titel, beginnend mit dem ältesten Buch.
Klicke auf „Run“. In der Konsole steht Cheapest: Pride and Prejudice und Titles by year: ['Pride and Prejudice', 'Emma', ...].
Probier es selbst
from books.models import Book
# 1. Günstigstes: der Titel des günstigsten Buches
# 2. Titel nach Jahr: alle Titel als Liste, beginnend mit dem ältesten Buch
Alle Lektionen in Modelle und Admin-Bereich
2Abfragen mit dem ORM
Datensätze erstellenAlle und AbrufenFiltern und SuchabfragenDatensätze zählenDatensätze sortierenAktualisieren und LöschenÜbe selbstständig: Django-Playground