Una lista desde la base de datos
Parte de la sección Modelos y el panel de administración del Journey de Django de Coddy. Lección 13 de 23.
La página de inicio todavía muestra tres títulos escritos directamente en la vista. Las páginas y los modelos se encuentran en la vista: esta le pide filas al ORM y le pasa el QuerySet a la plantilla, igual que antes pasabas una lista. Una página con los libros que todavía no has leído sería así:
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})El punto en from .models indica la carpeta propia de esta aplicación. En la plantilla, cada elemento del bucle es un Book, así que {{ book.title }} y {{ book.price }} leen sus campos, y {{ book }} por sí solo imprime su __str__.
Desafío
Fácil- En
books/views.py, proporciona a la plantilla todos los libros de la base de datos comobooks, en lugar de la lista escrita manualmente. - En
home.html, muestra cada libro con su título y año entre paréntesis, comoDune (1965).
Pulsa Ejecutar y abre /. Añade un libro en la pestaña Shell, vuelve a cargar la página y aparecerá en la lista.
Pruébalo tú mismo
from django.shortcuts import render
def home(request):
books = ["Dune", "Emma", "The Hobbit"]
return render(request, "books/home.html", {"books": books})
Todas las lecciones de Modelos y el panel de administración
3Páginas desde la base de datos
Una lista desde la base de datosUna página para cada libroPractica por tu cuenta: Playground de Django