קישורים בין דפים
חלק מהיחידה יסודות Django במסלול ה-Django של Coddy. שיעור 16 מתוך 23.
לכל משקה יש דף משלו בכתובת /drinks/<slug>/, והרשימה בכתובת /drinks/ צריכה לקשר אליהם. בתבנית, התגית {% url %} בונה כתובת על סמך שם של נתיב, כפי ש־reverse() עושה בתצוגה:
<a href="{% url 'menu:about' %}">About us</a>
<a href="{% url 'menu:table' 7 %}">Table 7</a>השם מופיע ראשון, במרכאות ועם מרחב השמות שלו. ערכי הממירים מופיעים אחריו, מופרדים ברווחים, והם יכולים להיות משתנים: בלולאה, {% url 'menu:table' table.number %} בונה את הכתובת של כל שולחן. עכשיו לכל משקה ב־DRINKS יש slug משלו.
שם או ערך שגויים גורמים לקריסת הדף עם NoReverseMatch, כך שקישור שבור מתגלה בזמן בניית הדף, ולא כשמבקר לוחץ עליו.
אתגר
קלב־drinks.html, הפכו את השם של כל משקה לקישור לעמוד שלו: <a href="...">Latte</a> מוביל אל /drinks/latte/. בנו את הכתובת באמצעות {% url %} וה־slug של המשקה.
לחצו על הפעלה ולחצו על Flat White בעמוד /drinks/.
נסו בעצמכם
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Our Drinks</title>
</head>
<body>
<h1>Our Drinks</h1>
<p class="count">{{ drinks|length }} drink{{ drinks|pluralize }}</p>
<ul>
{% for drink in drinks %}
<li class="drink">
{{ drink.name }}
<span class="price">${{ drink.price|floatformat:2 }}</span>
{% if drink.sold_out %}
<span class="sold-out">Sold out</span>
{% endif %}
</li>
{% empty %}
<li>No drinks today.</li>
{% endfor %}
</ul>
</body>
</html>
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.
כל השיעורים ביחידה יסודות Django
תרגלו בעצמכם: Django אונליין