Collegamenti tra pagine
Fa parte della sezione Fondamenti di Django del percorso Django di Coddy. Lezione 16 di 23.
Ogni bevanda ha la propria pagina all'indirizzo /drinks/<slug>/ e l'elenco su /drinks/ dovrebbe contenere link a queste pagine. In un template, il tag {% url %} crea un indirizzo a partire dal nome di una route, come fa reverse() in una view:
<a href="{% url 'menu:about' %}">About us</a>
<a href="{% url 'menu:table' 7 %}">Table 7</a>Il nome viene prima, tra virgolette, insieme al suo namespace. Seguono i valori dei convertitori, separati da spazi, che possono essere variabili: in un ciclo, {% url 'menu:table' table.number %} crea l'indirizzo di ogni tavolo. Ora ogni bevanda in DRINKS ha il proprio slug.
Un nome o un valore errato causa l'arresto della pagina con NoReverseMatch, quindi un link non funzionante viene individuato mentre costruisci la pagina, non quando un visitatore ci clicca sopra.
Sfida
FacileIn drinks.html, rendi il nome di ogni bevanda un link alla relativa pagina: <a href="...">Latte</a> porta a /drinks/latte/. Crea l'indirizzo con {% url %} e lo slug della bevanda.
Premi Run e fai clic su Flat White in /drinks/.
Provalo tu
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Our Drinks</title>
</head>
<body>
<h1>Our Drinks</h1>
<p class="count">{{ drinks|length }} drink{{ drinks|pluralize }}</p>
<ul>
{% for drink in drinks %}
<li class="drink">
{{ drink.name }}
<span class="price">${{ drink.price|floatformat:2 }}</span>
{% if drink.sold_out %}
<span class="sold-out">Sold out</span>
{% endif %}
</li>
{% empty %}
<li>No drinks today.</li>
{% endfor %}
</ul>
</body>
</html>
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di Django
4Layout e file statici
Ereditarietà dei templateUn titolo per ogni pagina3Template
Il tuo primo templateVariabili nei templateEsercitati da solo: Playground Django