ניווט באתר
חלק מהיחידה יסודות Django במסלול ה-Django של Coddy. שיעור 23 מתוך 23.
באתר יש עכשיו חמישה עמודים עם פריסה משותפת (גם ל־About יש תבנית), אבל הניווט ב־base.html מציג שלושה, והוא אף פעם לא מראה באיזה עמוד נמצאים.
כל תבנית יכולה לקרוא את request, הבקשה שמטופלת, כי settings.py מפרט את מעבד ההקשר request ב־TEMPLATES. request.resolver_match מתאר את הנתיב שהתאים: url_name הוא שמו ללא מרחב השמות ("contact"), ו־view_name הוא השם המלא ("menu:contact"). מסגרת יכולה להציג שורה בעמוד אחד בלבד:
{% if request.resolver_match.url_name == "contact" %}
<p>We reply within a day.</p>
{% endif %}אתגר
בינוניב־base.html, צרו קישורי ניווט אל Home, Menu, Drinks, Hours ו־About, בסדר הזה, כאשר הכתובת של כל אחד מהם נבנית באמצעות {% url %}. בכל עמוד, רק הקישור לאותו עמוד מקבל את class="active".
הגדירו סגנון עבור nav a.active בתוך style.css, למשל טקסט מודגש, ואז לחצו על Run ועברו בין הקישורים בתפריט הניווט.
נסו בעצמכם
{% 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>
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות Django
תרגלו בעצמכם: Django אונליין