Menu
CoddyTech

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__.

challenge icon

Sfida

Facile

Fai in modo che la pagina iniziale elenchi i libri reali.

  1. In books/views.py, passa al template tutti i libri nel database come books, al posto dell’elenco digitato.
  2. In home.html, mostra ogni libro con il titolo e l’anno tra parentesi, come Dune (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