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

التحدي

سهل

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

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

انقر على Python Developer في /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