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 בלי לעדכן את התצוגה, היא לא תמצא לא pk ולא 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"),
]

כל השיעורים ביחידה תצוגות מבוססות מחלקות

תרגלו בעצמכם: Django אונליין