עמודים לפי 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 ותקרוס.
אתגר
קלהחליפו את מזהי דפי המשרות בסלאגים.
- ב־
jobs/urls.py, הגדירו שהנתיבdetailיקבל את הסלאג של המשרה במקום את המפתח הראשי שלה. - ב־
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 אונליין