ListView
Część sekcji Widoki oparte na klasach ścieżki Django w Coddy. Lekcja 4 z 18.
Tablica potrzebuje strony, która wyświetla wszystkie zadania. Lista wierszy tabeli jest tak często używana, że Django udostępnia gotowy widok: ListView. Podaj mu model, a pobierze wiersze i wyrenderuje szablon z ich danymi. Lista przepisów w aplikacji recipes:
from django.views.generic import ListView
class RecipeListView(ListView):
model = Recipe
context_object_name = "recipes" # {% for recipe in recipes %}
ordering = ["minutes"] # najpierw najszybszeJeśli nie podasz template_name, widok wyrenderuje recipes/recipe_list.html: etykietę aplikacji, nazwę modelu zapisaną małymi literami, a następnie _list.html. Wiersze są dostępne jako object_list i recipe_list albo pod nazwą z context_object_name.
ordering przyjmuje te same wartości co order_by(), więc ["-minutes"] wyświetliłoby najwolniejszy przepis jako pierwszy. Bez tego wiersze pojawią się w kolejności z bazy danych.
Wyzwanie
ŁatwyDodaj stronę z ofertami pracy. Jej szablon, jobs/job_list.html, jest gotowy i wykonuje pętlę po jobs.
- W
jobs/views.pydodajJobListView, widokListViewdlaJob, z listą o nazwiejobsi najnowszą datąpostedna początku. Pozostaw domyślny szablon. - W
jobs/urls.pydodaj trasę"jobs/"o nazwielist.
Naciśnij Run i otwórz /jobs/.
Spróbuj swoich sił
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"
Wszystkie lekcje w sekcji Widoki oparte na klasach
2Generyczne widoki wyświetlania
ListViewDetailViewPoćwicz samodzielnie: Edytor online Django