Menu
CoddyTech

Slug'a Göre Sayfalar

Coddy'nin Django Journey'sinin Sınıf Tabanlı Görünümler bölümünün bir parçası. Ders 6 / 18.

/jobs/7/ iş hakkında hiçbir şey söylemez. /jobs/python-developer-brightline/ ise hem insanlara hem de arama motorlarına ne olduğunu anlatır. Bu okunabilir kısma slug denir: tirelerle birleştirilmiş küçük harfli sözcükler. Her Job nesnesinde zaten slug alanında bir tane bulunur.

URL bağımsız değişkeninin adı slug olduğunda, bir DetailView, slug alanı eşleşen satırı bulur. Her iki ad da değiştirilebilir. Yolu "recipes/<slug:recipe_slug>/" olan bir tarif sitesi, görünüme şunu söyler:

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

slug_url_kwarg URL bağımsız değişkeninin adını, slug_field ise model alanının adını belirtir; her ikisinin varsayılan değeri "slug" şeklindedir. Görünüme bildirmeden URL bağımsız değişkeninin adını değiştirirseniz, görünüm ne bir pk ne de bir slug bulabilir ve hata verir.

challenge icon

Görev

Kolay

İş sayfalarını kimliklerden slug'lara taşı.

  1. jobs/urls.py dosyasında, detail rotasının işin pk'si yerine slug'ını almasını sağla.
  2. job_list.html dosyasında, her bağlantının işin slug'ını iletmesini sağla.

/jobs/ sayfasında Python Developer'a tıkla: adres /jobs/python-developer-brightline/ olur.

Kendin dene

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"),
]

Sınıf Tabanlı Görünümler bölümündeki tüm dersler

Kendi başına pratik yap: Django playground