Navigazione del sito
Fa parte della sezione Fondamenti di Django del percorso Django di Coddy. Lezione 23 di 23.
Ora il sito 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 corrisponde la pagina. Django lo aggiunge al contesto di ogni template perché TEMPLATES in settings.py elenca il processore di contesto request, una funzione che aggiunge un nome a ogni contesto. request.resolver_match descrive la route corrispondente: url_name è il suo nome senza il namespace ("contact") e view_name il nome completo ("menu:contact"). Un template può mostrare una riga in una sola pagina:
{% if request.resolver_match.url_name == "contact" %}
<p>We reply within a day.</p>
{% endif %}Il tag può anche trovarsi all'interno di un tag <a>, per aggiungere un attributo in una sola pagina:
<a href="/contact/"{% if request.resolver_match.url_name == "contact" %} class="active"{% endif %}>Contact</a>Sfida
MedioFai in modo che la barra di navigazione mostri dove ti trovi.
- In
base.html, crea i link della barra di navigazione Home, Menu, Drinks, Hours e About, in quest'ordine, costruendo ciascun indirizzo con{% url %}. In ogni pagina, solo il link corrispondente a quella pagina riceveclass="active". - In
style.css, imposta in grassettonav a.active.
Fai clic su ciascun link della barra di navigazione: solo il link della pagina in cui ti trovi diventa grassetto.
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>
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