Menu
CoddyTech

الصفحات حسب Slug

جزء من قسم واجهات العرض المعتمدة على الأصناف في رحلة Django على Coddy. الدرس 6 من 18.

لا يُخبرك /jobs/7/ بشيء عن الوظيفة. أما /jobs/python-developer-brightline/ فيوضح ماهيتها للناس ومحركات البحث. يُسمّى هذا الجزء المقروء slug: كلمات بأحرف صغيرة تفصل بينها واصلات. لكل Job واحدٌ بالفعل في الحقل slug.

عندما تُسمّى وسيطة URL slug، يعثر DetailView على الصف الذي يطابق فيه الحقل slug هذه القيمة. ويمكن تغيير كلا الاسمين. إذا كان مسار موقع وصفات هو "recipes/<slug:recipe_slug>/"، فعليك إخبار العرض بما يلي:

class RecipeDetailView(DetailView):
    model = Recipe
    slug_url_kwarg = "recipe_slug"

يحدّد slug_url_kwarg اسم وسيطة URL، ويحدّد slug_field حقل النموذج؛ والقيمة الافتراضية لكليهما هي "slug". أعد تسمية وسيطة URL دون إخبار العرض، ولن يعثر على مفتاح أساسي ولا على slug، وسيتعطل.

challenge icon

التحدي

سهل

انقل صفحات الوظائف من المعرّفات إلى الأجزاء اللطيفة:

  • في jobs/urls.py، يستخدم المسار detail الجزء اللطيف للوظيفة بدلًا من مفتاحها الأساسي.
  • في job_list.html، يمرّر كل رابط الجزء اللطيف للوظيفة.

اضغط على «تشغيل»، ثم انقر على «مطور Python» في /jobs/: سيكون العنوان /jobs/python-developer-brightline/.

جرّب بنفسك

from django.urls import path

from . import views

app_name = "jobs"

urlpatterns = [
    path("", views.HomeView.as_view(), name="home"),
    path("about/", views.AboutView.as_view(), name="about"),
    path("jobs/", views.JobListView.as_view(), name="list"),
    path("jobs/<int:pk>/", views.JobDetailView.as_view(), name="detail"),
]

جميع دروس واجهات العرض المعتمدة على الأصناف

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