Menu
CoddyTech

الروابط المسماة

جزء من قسم أساسيات Django في رحلة Django على Coddy. الدرس 10 من 23.

يجب أن ترتبط الصفحة الرئيسية بصفحة «حول». كتابة "/about/" في كل رابط تنجح إلى أن يتغير العنوان، وعندها تتعطل كل الروابط. بدلًا من ذلك، امنح كل مسار اسمًا وأنشئ العنوان منه. ملف urls.py لتطبيق متجر:

app_name = "shop"

urlpatterns = [
    path("cart/", views.cart, name="cart"),
    path("products/<slug:slug>/", views.product, name="product"),
]

يضع app_name الأسماء في مساحة أسماء: الاسم الكامل هو "shop:cart"، لذا يمكن لتطبيقين أن يكون لكل منهما home. تحوّل reverse() الاسم إلى عنوان. عند تضمين المتجر تحت shop/:

from django.urls import reverse

reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

استدعِ reverse() داخل العرض. إذا وضعته في أعلى views.py، فسيُنفَّذ قبل وجود المسارات.

غيّر "cart/" إلى "basket/"، وسيتبع كل عنوان مُنشأ من الاسم هذا التغيير.

challenge icon

التحدي

سهل

اربط الصفحة الرئيسية بصفحة «نبذة عنا» باستخدام الاسم.

  1. في menu/urls.py، عيّن app_name إلى "menu" وسمِّ كل مسار باسم العرض الخاص به: home، about، hours، contact، table، drink، order.
  2. في menu/views.py، استورد reverse من django.urls. في home، أضف رابطًا بعنوان About us تكون قيمة href فيه هي reverse("menu:about").

انقر على «About us»: ستُفتح صفحة «نبذة عنا».

جرّب بنفسك

from django.urls import path

from . import views

urlpatterns = [
    path("", views.home),
    path("about/", views.about),
    path("hours/", views.hours),
    path("contact/", views.contact),
    path("table/<int:number>/", views.table),
    path("drinks/<slug:slug>/", views.drink),
    path("order/", views.order),
]
quiz iconاختبر نفسك

يتضمن هذا الدرس اختبارًا قصيرًا. ابدأ الدرس للإجابة عليه وتتبّع تقدمك.

جميع دروس أساسيات Django

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