Menu
CoddyTech

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 rimandare 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 per primo, tra virgolette, insieme al suo namespace. Seguono i valori dei converter, 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 contiene il proprio slug.

Un nome o un valore errato causa un errore nella pagina con NoReverseMatch, quindi un link non funzionante viene individuato mentre costruisci la pagina, non quando un visitatore ci fa clic.

challenge icon

Sfida

Facile

In drinks.html, fai in modo che il nome di ogni bevanda sia un link alla relativa pagina: <a href="...">Latte</a> porta a /drinks/latte/. Crea l’indirizzo usando {% url %} e lo slug della bevanda.

In /drinks/, fai clic su Flat White: si apre la pagina di Flat White.

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>
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti di Django

Esercitati da solo: Playground Django