ListView
Coddy'nin Django Journey'sinin Sınıf Tabanlı Görünümler bölümünün bir parçası. Ders 4 / 18.
Kurulun tüm işleri listeleyen bir sayfaya ihtiyacı var. Bir tablonun satırlarının listesi o kadar yaygın ki Django bunun için görünümü yazdı: ListView. Ona bir model verin; satırları sorgular ve bunları içeren bir şablon oluşturur. recipes uygulamasındaki bir tarif sitesinin listesi:
from django.views.generic import ListView
class RecipeListView(ListView):
model = Recipe
context_object_name = "recipes" # {% for recipe in recipes %}
ordering = ["minutes"] # en hızlısı öncetemplate_name belirtilmezse recipes/recipe_list.html oluşturulur: uygulama etiketi, modelin küçük harfli adı ve ardından _list.html. Satırlar object_list ve recipe_list adlarıyla ya da context_object_name içinde belirtilen adla gelir.
ordering, order_by() için kullanılan değerleri kabul eder; bu nedenle ["-minutes"] en uzun süren tarifi ilk sıraya koyar. Bu belirtilmezse satırlar veritabanındaki sırayla gelir.
Görev
Kolayİş ilanları sayfasını ekleyin. Şablonu jobs/job_list.html hazır ve jobs üzerinde döngü kuruyor.
jobs/views.pydosyasında,Jobmodelinin birListView'ı olanJobListView; liste adıjobsve en yenipostedtarihi ilk sırada olacak şekilde. Varsayılan şablonu kullanın.jobs/urls.pydosyasında,"jobs/"yolunulistadıyla tanımlayın.
Run'a basın ve /jobs/ adresini açın.
Kendin dene
from django.views.generic import TemplateView
from .models import Job
class HomeView(TemplateView):
template_name = "jobs/home.html"
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context["count"] = Job.objects.count()
context["latest"] = Job.objects.order_by("-posted").first()
return context
class AboutView(TemplateView):
template_name = "jobs/about.html"
Sınıf Tabanlı Görünümler bölümündeki tüm dersler
Kendi başına pratik yap: Django playground