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 الخاص بالمشروب.

اضغط على Run وانقر على فلات وايت في /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

تدرّب بنفسك: Playground لـ Django