Nawigacja po stronie
Część sekcji Podstawy Django ścieżki Django w Coddy. Lekcja 23 z 23.
Witryna ma teraz pięć stron ze wspólnym układem (strona About też ma już szablon), ale nawigacja w base.html wymienia trzy strony i nigdy nie pokazuje, na której jesteś.
Każdy szablon ma dostęp do request, czyli obsługiwanego żądania, ponieważ w settings.py na liście procesorów kontekstu w TEMPLATES znajduje się request. request.resolver_match opisuje dopasowaną trasę: url_name to jej nazwa bez przestrzeni nazw ("contact"), a view_name to pełna nazwa ("menu:contact"). Szablon może wyświetlić tekst tylko na jednej stronie:
{% if request.resolver_match.url_name == "contact" %}
<p>We reply within a day.</p>
{% endif %}Wyzwanie
ŚredniW pliku base.html utwórz linki nawigacyjne Strona główna, Menu, Napoje, Godziny otwarcia i O nas, w tej kolejności; adres każdego z nich powinien być zbudowany za pomocą {% url %}. Na każdej stronie tylko link do tej strony otrzymuje class="active".
Dodaj styl dla nav a.active w pliku style.css, na przykład pogrubiony tekst, a następnie naciśnij Uruchom i klikaj linki nawigacyjne.
Spróbuj swoich sił
{% 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>
Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.
Wszystkie lekcje w sekcji Podstawy Django
4Układy i pliki statyczne
Dziedziczenie szablonówTytuł dla każdej stronyPoćwicz samodzielnie: Edytor online Django