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.
Aufgabe
EinfachZeige die Getränkekarte aus drink_card.html auf beiden Seiten an.
- Ersetze in
home.html<p>Today's special: ...</p>durch<p>Today's special:</p>, gefolgt von der Getränkekarte fürspecial. - Ersetze in
drinks.htmlinnerhalb 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
1Deine erste Django-Website
Hallo, DjangoEine zweite Seite4Layouts und statische Dateien
Template-VererbungEin Titel für jede SeiteÜbe selbstständig: Django-Playground