Menu
CoddyTech

Navegação do site

Parte da seção Fundamentos do Django do Journey de Django da Coddy. Lição 23 de 23.

Agora, o site tem cinco páginas com o layout compartilhado (About também ganhou um template), mas a navegação em base.html lista três, e nunca mostra onde você está.

Todos os templates podem acessar request, a solicitação que está sendo atendida, porque settings.py lista o processador de contexto request em TEMPLATES. request.resolver_match descreve a rota correspondente: url_name é o nome dela sem o namespace ("contact"), e view_name é o nome completo ("menu:contact"). Um quadro pode exibir uma linha em apenas uma página:

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

Desafio

Médio

Em base.html, crie os links de navegação Início, Cardápio, Bebidas, Horários e Sobre, nessa ordem, cada um com o endereço criado usando {% url %}. Em cada página, somente o link para essa página recebe class="active".

Adicione um estilo a nav a.active em style.css, como texto em negrito, depois pressione Executar e navegue pelos links.

Experimente você mesmo

{% 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 iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Fundamentos do Django

Pratique por conta própria: Playground de Django