Menu
CoddyTech

محوّلات المسارات

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

يوجد رمز QR على كل طاولة في المقهى، ويحتاج كل رمز إلى صفحته الخاصة. يمكن لمسار واحد أن يطابقها جميعًا عندما يكون جزء منه محوّل مسار. قد يستخدم التقويم اثنين:

path("calendar/<int:year>/<int:month>/", views.calendar),

الجزء الموجود بين علامتي الزاوية هو محوّل: نوع، ونقطتان، واسم. يطابق int عددًا صحيحًا ويحوّله إلى int في Python. تتلقى دالة العرض كل قيمة وسيطًا بالاسم نفسه:

def calendar(request, year, month):
    return HttpResponse(f"<h2>{month} / {year}</h2>")

بالنسبة إلى /calendar/2026/3/، يستدعي Django الدالة calendar(request, year=2026, month=3). أما العنوان الذي لا يطابقه المحوّل، مثل /calendar/next/3/، فيُرجع 404 ولا تُشغَّل دالة العرض مطلقًا.

challenge icon

التحدي

سهل

امنح كل طاولة صفحتها:

  • في menu/urls.py، مسار واحد يطابق /table/5/ و/table/12/ وأي عدد صحيح آخر؛
  • في menu/views.py، دالة عرض table تُرجع <h1>Table 5</h1> للطاولة 5، وهكذا.
/table/abc/ يُرجع 404. اضغط على Run: تفتح المعاينة /table/5/.

جرّب بنفسك

from django.urls import path

from . import views

urlpatterns = [
    path("", views.home),
    path("about/", views.about),
    path("hours/", views.hours),
    path("contact/", views.contact),
]

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

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