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 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.

challenge icon

Sfida

Facile

In 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>
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