Menu
CoddyTech

קישורים בין דפים

חלק מהיחידה יסודות 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, כך שקישור שבור מתגלה בזמן בניית הדף, ולא כשמבקר לוחץ עליו.

challenge icon

אתגר

קל

ב־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>
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות Django

תרגלו בעצמכם: Django אונליין