Menu
CoddyTech

כתובות URL בעלות שם

חלק מהיחידה יסודות Django במסלול ה-Django של Coddy. שיעור 10 מתוך 23.

דף הבית צריך לקשר אל אודות. הקלדת "/about/" בכל קישור עובדת עד שהכתובת משתנה, ואז כל הקישורים נשברים. במקום זאת, תן לכל נתיב שם ובנה ממנו את הכתובת. קובץ urls.py של אפליקציית חנות:

app_name = "shop"

urlpatterns = [
    path("cart/", views.cart, name="cart"),
    path("products/<slug:slug>/", views.product, name="product"),
]

app_name מציב את השמות במרחב שמות: השם המלא הוא "shop:cart", כך שלשתי אפליקציות יכולה להיות כל אחת כתובת home. reverse() ממיר שם בחזרה לכתובת. כשהחנות כלולה תחת shop/:

from django.urls import reverse

reverse("shop:cart")                    # "/shop/cart/"
reverse("shop:product", args=["mug"])   # "/shop/products/mug/"

קרא ל־reverse() בתוך תצוגה. בראש views.py הוא רץ לפני שהנתיבים קיימים.

שנה את "cart/" ל־"basket/", וכל כתובת שנבנתה מהשם תתעדכן בהתאם.

challenge icon

אתגר

קל

קשרו את דף הבית ל־About לפי שם.

  1. ב־menu/urls.py, הגדירו את app_name לערך "menu" ותנו לכל נתיב שם התואם לתצוגה שלו: home, about, hours, contact, table, drink, order.
  2. ב־menu/views.py, ייבאו את reverse מתוך django.urls. בתוך home, הוסיפו קישור עם הכיתוב About us, שה־href שלו הוא reverse("menu:about").

לחצו על About us: דף About נפתח.

נסו בעצמכם

from django.urls import path

from . import views

urlpatterns = [
    path("", views.home),
    path("about/", views.about),
    path("hours/", views.hours),
    path("contact/", views.contact),
    path("table/<int:number>/", views.table),
    path("drinks/<slug:slug>/", views.drink),
    path("order/", views.order),
]
quiz iconבחנו את עצמכם

השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.

כל השיעורים ביחידה יסודות Django

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