Inclusione di un template
Fa parte della sezione Fondamenti di Django del percorso Django di Coddy. Lezione 19 di 23.
Una scheda bevanda (nome, descrizione, prezzo) va nella pagina iniziale per la specialità di oggi e in /drinks/ per ogni bevanda. È pronta in menu/templates/menu/drink_card.html. Invece di copiarla in due template, includila:
{% include "shop/price_tag.html" %}Il template incluso viene inserito nel punto in cui si trova il tag e ha accesso alle stesse variabili. Se l'etichetta del prezzo legge {{ product.price }}, funziona all'interno di {% for product in products %}. Se l'elemento ha un altro nome, with passa il nome che il componente si aspetta:
{% include "shop/price_tag.html" with product=deal %}{% extends %} condivide una struttura; {% include %} condivide un componente. Modifica il componente una sola volta e tutte le pagine si aggiornano.
Sfida
FacileMostra la scheda della bevanda da drink_card.html in entrambe le pagine.
- In
home.html, sostituisci<p>Today's special: ...</p>con<p>Today's special:</p>, seguito dalla scheda della bevanda perspecial. - In
drinks.html, all'interno di ogni<li class="drink">, sostituisci il collegamento e il prezzo con la scheda della bevanda. Mantieni l'indicazione di esaurimento.
Premi Esegui: la pagina iniziale e /drinks/ mostrano le stesse schede.
Provalo tu
{% 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 %}
Tutte le lezioni di Fondamenti di Django
4Layout e file statici
Ereditarietà dei templateUn titolo per ogni paginaEsercitati da solo: Playground Django