Menu
CoddyTech

Eine Liste aus der Datenbank

Teil des Abschnitts Modelle und Admin-Bereich der Django-Journey von Coddy. Lektion 13 von 23.

Die Startseite listet weiterhin drei Titel auf, die in die View geschrieben wurden. In der View treffen Seiten und Modelle aufeinander: Sie fragt das ORM nach Zeilen und übergibt das QuerySet an das Template, so wie du zuvor eine Liste übergeben hast. Eine Seite mit den Büchern, die du noch nicht gelesen hast, könnte so aussehen:

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

Der Punkt in from .models bedeutet, dass es sich um den eigenen Ordner dieser App handelt. Im Template ist jedes Element der Schleife ein Book, daher lesen {{ book.title }} und {{ book.price }} seine Felder aus, und {{ book }} allein gibt sein __str__ aus.

challenge icon

Aufgabe

Einfach
  • Gib in books/views.py der Vorlage alle Bücher aus der Datenbank als books statt der fest codierten Liste.
  • Zeige in home.html jedes Buch mit seinem Titel und Jahr in Klammern an, wie bei Dune (1965).

Klicke auf „Run“ und öffne /. Füge im Tab „Shell“ ein Buch hinzu, lade die Seite neu, und es erscheint in der Liste.

Probier es selbst

from django.shortcuts import render


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

Alle Lektionen in Modelle und Admin-Bereich

Übe selbstständig: Django-Playground