Menu
CoddyTech

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 %}
challenge icon

Wyzwanie

Średni

W 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>
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy Django

Poćwicz samodzielnie: Edytor online Django