קישורים בין דפים
חלק מהיחידה יסודות 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 של המשקה.
ב־/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 אונליין