محوّلات المسارات
جزء من قسم أساسيات 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 «الصفحة غير موجودة»، ولا يُنفَّذ العرض مطلقًا.
التحدي
سهلاجعل لكل طاولة صفحة خاصة بها.
- في
menu/urls.py، أضف مسارًا واحدًا يطابق/table/5/و/table/12/وأي عدد صحيح آخر. وجّهه إلىviews.table. - في
menu/views.py، اكتب عرضًا باسمtable. معاملها الثاني يحمل اسم المحوّل. وتُعيد<h1>Table 5</h1>للطاولة 5.
افتح /table/12/: سترى Table 12.
جرّب بنفسك
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