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. La vista è il punto in cui la pagina riceve i dati: chiede righe all'ORM e passa il QuerySet al template, proprio come prima passavi una lista. Una pagina con i libri che non hai ancora letto sarebbe:
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
FacileFai in modo che la pagina iniziale elenchi i libri reali.
- In
books/views.py, passa al template tutti i libri nel database comebooks, al posto dell’elenco digitato. - In
home.html, mostra ogni libro con il titolo e l’anno tra parentesi, comeDune (1965).
Nella scheda Shell, digita Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00") e ricarica /: Beloved (1987) sarà in cima all’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