Menu
CoddyTech

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',).

challenge icon

Sfida

Medio

Riscrivi explore.py in modo che stampi due righe:

  1. Cheapest: e il titolo del libro meno caro.
  2. 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

Esercitati da solo: Playground Django