Menu
CoddyTech

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. La vista es donde la página obtiene sus datos: le pide filas al ORM y pasa el QuerySet a la plantilla, como antes pasaste 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 significa 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 muestra su __str__.

challenge icon

Desafío

Fácil

Haz que la página de inicio muestre los libros reales.

  1. En books/views.py, pasa a la plantilla todos los libros de la base de datos como books, en lugar de la lista escrita manualmente.
  2. En home.html, muestra cada libro con su título y año entre paréntesis, como Dune (1965).

En la pestaña Shell, escribe Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00") y vuelve a cargar /: Beloved (1987) encabezará 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

Practica por tu cuenta: Playground de Django