Menu
CoddyTech

Navigazione del sito

Fa parte della sezione Fondamenti di Django del percorso Django di Coddy. Lezione 23 di 23.

Il sito ora ha cinque pagine con il layout condiviso (anche About ha un template), ma la navigazione in base.html ne elenca tre e non indica mai dove ti trovi.

Ogni template può leggere request, la richiesta a cui si sta rispondendo, perché settings.py elenca il processore di contesto request in TEMPLATES. request.resolver_match descrive la route corrispondente: url_name è il suo nome senza lo spazio dei nomi ("contact") e view_name il nome completo ("menu:contact"). Un riquadro può mostrare una riga in una sola pagina:

{% if request.resolver_match.url_name == "contact" %}
    <p>We reply within a day.</p>
{% endif %}
challenge icon

Sfida

Medio

In base.html, crea i link di navigazione Home, Menu, Drinks, Hours e About, in quest'ordine, ciascuno con l'indirizzo creato usando {% url %}. In ogni pagina, solo il link corrispondente a quella pagina riceve class="active".

Assegna uno stile a nav a.active in style.css, ad esempio il testo in grassetto, poi premi Run e fai clic sui link di navigazione.

Provalo tu

{% load static %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <title>{% block title %}Corner Café{% endblock %}</title>
    <link rel="stylesheet" href="{% static 'menu/style.css' %}">
</head>
<body>
    <nav>
        <a href="{% url 'menu:home' %}">Home</a>
        <a href="{% url 'menu:drinks' %}">Drinks</a>
        <a href="{% url 'menu:about' %}">About</a>
    </nav>
    <main>
        {% block content %}{% endblock %}
    </main>
</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