Un elenco dal database
Fa parte della sezione Modelli e pannello di amministrazione del percorso Django di Coddy. Lezione 13 di 23.
La pagina iniziale elenca ancora tre titoli inseriti direttamente nella vista. Le pagine e i modelli si incontrano nella vista: questa chiede all’ORM le righe e passa il QuerySet al template, come prima passavi una lista. Una pagina con i libri che non hai ancora letto potrebbe essere:
from django.shortcuts import render
from .models import Book
def to_read(request):
books = Book.objects.filter(is_read=False)
return render(request, "books/to_read.html", {"books": books})Il punto in from .models indica la cartella di questa app. Nel template, ogni elemento del ciclo è un Book, quindi {{ book.title }} e {{ book.price }} leggono i suoi campi, mentre {{ book }} da solo stampa il suo __str__.
Sfida
Facile- In
books/views.py, passa al template tutti i libri presenti nel database comebooks, al posto dell’elenco scritto manualmente. - In
home.html, mostra ogni libro con il titolo e l’anno tra parentesi, comeDune (1965).
Premi Run e apri /. Aggiungi un libro nella scheda Shell, ricarica la pagina e lo troverai nell’elenco.
Provalo tu
from django.shortcuts import render
def home(request):
books = ["Dune", "Emma", "The Hobbit"]
return render(request, "books/home.html", {"books": books})
Tutte le lezioni di Modelli e pannello di amministrazione
Esercitati da solo: Playground Django