Menu
CoddyTech

Ein Template einbinden

Teil des Abschnitts Django-Grundlagen der Django-Journey von Coddy. Lektion 19 von 23.

Eine Getränkekarte (Name, Beschreibung, Preis) gehört für das heutige Angebot auf die Startseite und für jedes Getränk auf /drinks/. Sie ist fertig unter menu/templates/menu/drink_card.html. Statt sie in zwei Vorlagen zu kopieren, bindest du sie ein:

{% include "shop/price_tag.html" %}

Die eingebundene Vorlage wird an der Stelle des Tags eingefügt und hat Zugriff auf dieselben Variablen. Wenn das Preisschild {{ product.price }} liest, funktioniert es innerhalb von {% for product in products %}. Wenn das Element anders heißt, übergibt with den erwarteten Namen an das Teil:

{% include "shop/price_tag.html" with product=deal %}

{% extends %} teilt einen Rahmen; {% include %} teilt ein Teil. Ändere das Teil einmal, und jede Seite wird angepasst.

challenge icon

Aufgabe

Einfach

Zeige die Getränkekarte aus drink_card.html auf beiden Seiten an.

  1. Ersetze in home.html <p>Today's special: ...</p> durch <p>Today's special:</p>, gefolgt von der Getränkekarte für special.
  2. Ersetze in drinks.html innerhalb jedes <li class="drink"> den Link und den Preis durch die Getränkekarte. Behalte die Markierung „Ausverkauft“ bei.

Klicke auf Ausführen: Die Startseite und /drinks/ zeigen dieselben Karten.

Probier es selbst

{% extends "menu/base.html" %}

{% block content %}
    <h1>Welcome to Corner Café</h1>
    <p>Fresh coffee and cake every day.</p>
    <p>Today's special: {{ special.name }}</p>
    <a href="{% url 'menu:about' %}">About us</a>
{% endblock %}

Alle Lektionen in Django-Grundlagen

Übe selbstständig: Django-Playground