Ordinare le righe
Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 11 di 23.
Il libro più economico, il più recente, tutti i titoli dal più vecchio al più nuovo: ognuna è una domanda sull’ordinamento. order_by() ordina un QuerySet in base a un campo, come fa ordering in Meta per tutti, e un segno meno ordina dal valore più alto al più basso. first() restituisce la prima riga, oppure None se non ce n’è nessuna, quindi a differenza di get() non solleva mai un’eccezione:
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() salta gli oggetti Book e restituisce i valori di un campo. Senza flat=True, ogni valore è contenuto in una tupla con un solo elemento, come ('Mary Beard',).
Sfida
MedioRiscrivi explore.py in modo che stampi due righe:
Cheapest:e il titolo del libro meno caro.Titles by year:e un elenco di tutti i titoli, dal libro più vecchio al più recente.
Premi Run. La Console mostra Cheapest: Pride and Prejudice e Titles by year: ['Pride and Prejudice', 'Emma', ...].
Provalo tu
from books.models import Book
# 1. Il più economico: il titolo del libro più economico
# 2. Titoli per anno: tutti i titoli, dal libro più vecchio al più recente, sotto forma di lista
Tutte le lezioni di Modelli e pannello di amministrazione
2Interrogare con l’ORM
Creare righeTutti e OttieniFiltri e ricercheContare le righeOrdinare le righeAggiornare ed eliminareEsercitati da solo: Playground Django