Menu
CoddyTech

Une liste issue de la base de données

Fait partie de la section Modèles et interface d’administration du Journey Django de Coddy. Leçon 13 sur 23.

La page d’accueil affiche toujours trois titres saisis directement dans la vue. La vue est l’endroit où la page récupère ses données : elle demande des lignes à l’ORM et transmet le QuerySet au modèle, comme tu as transmis une liste auparavant. Une page des livres que tu n’as pas encore lus pourrait être :

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})

Le point dans from .models désigne le propre dossier de cette application. Dans le modèle, chaque élément de la boucle est un Book, donc {{ book.title }} et {{ book.price }} lisent ses champs, et {{ book }} seul affiche son __str__.

challenge icon

Défi

Facile

Fais en sorte que la page d’accueil affiche les vrais livres.

  1. Dans books/views.py, transmets au modèle tous les livres de la base de données sous le nom books, à la place de la liste saisie manuellement.
  2. Dans home.html, affiche chaque livre avec son titre et son année entre parenthèses, comme Dune (1965).

Dans l’onglet Shell, saisis Book.objects.create(title="Beloved", author="Toni Morrison", year=1987, price="13.00") et recharge / : Beloved (1987) apparaît en tête de liste.

Essayez vous-même

from django.shortcuts import render


def home(request):
    books = ["Dune", "Emma", "The Hobbit"]
    return render(request, "books/home.html", {"books": books})

Toutes les leçons de Modèles et interface d’administration

Entraînez-vous par vous-même : Playground Django