ListView en DetailView
Collecties en afzonderlijke records weergeven
ListView en DetailView is een gratis Django Academy-les op CoddyKit. Dit is les 1 van 4. Je kunt 3 lessen uit dit leerpad gratis volledig lezen — daarna ontgrendelt CoddyKit PRO alle lessen, plus praktische oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Django Academy. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Django Academy bevat in totaal 4 lessen.
Twee pagina's die je altijd nodig hebt
Bijna elke app toont een lijst met dingen en een pagina voor één ding. Django levert generieke weergaven die beide voor je bouwen. ✨
Maak kennis met ListView
ListView haalt meerdere objecten op en geeft ze door aan een template, zodat je de query en de render-aanroep niet zelf hoeft te schrijven.
Richt ListView op een model
Je geeft ListView een model en de weergave voert automatisch de query uit voor elke rij in die tabel.
from django.views.generic import ListView
from .models import Post
class PostList(ListView):
model = PostDe standaardnaam van de template
ListView zoekt naar een template met de naam app/model_list.html, zoals post_list.html, tenzij je deze overschrijft.
object_list in de template
In de template komen de rijen binnen als object_list, klaar om eroverheen te lopen en ze weer te geven.
{% for post in object_list %}
<li>{{ post.title }}</li>
{% endfor %}Betere namen met context_object_name
Stel context_object_name in, zodat je templatevariabele natuurlijk leest, zoals posts in plaats van object_list.
class PostList(ListView):
model = Post
context_object_name = "posts"Maak kennis met DetailView
DetailView haalt één object op via zijn sleutel en rendert daarvoor één gerichte pagina.
Hoe DetailView het object vindt
DetailView leest een pk of slug uit de URL en voert daarna get() uit om precies dat ene record te laden.
from django.views.generic import DetailView
class PostDetail(DetailView):
model = PostDe detailtemplate en object
DetailView rendert app/model_detail.html en stelt het record in de template beschikbaar als object.
<h1>{{ object.title }}</h1>
<p>{{ object.body }}</p>Koppel ze aan URL's
Elke generieke weergave wordt met as_view() een URL, waarbij de klasse in een aanroepbare weergave wordt veranderd.
path("posts/", PostList.as_view()),
path("posts/<int:pk>/", PostDetail.as_view()),Minder code, hetzelfde resultaat
Samen vervangen deze twee weergaven tientallen regels standaardcode. Zo krijg je bijna gratis lijst- en detailpagina's. 🚀
Korte controle
Waar haalt DetailView het object vandaan dat het toont?
Samenvatting: lijst en detail
Je hebt ListView voor verzamelingen en DetailView voor één record leren kennen, beide met as_view() gekoppeld en zonder enorm veel standaardcode te schrijven. 🎉
Leer Python met een AI-tutor — gratis
Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.
- Cursussen
- 30
- Lessen
- 120
Veelgestelde vragen
Is de les “ListView en DetailView” gratis?
Ja — je kunt hier op het web alle 3 lessen van het leerpad Django Academy, waaronder “ListView en DetailView”, gratis volledig lezen. Daarna ontgrendelt CoddyKit PRO alle lessen, plus interactieve oefeningen met een ingebouwde code-editor en een AI-tutor die 24/7 beschikbaar is. De cursus Django Academy bevat in totaal 4 lessen.
Wat leer ik in “ListView en DetailView”?
Collecties en afzonderlijke records weergeven Je oefent met Django Academy door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.
Heb ik ervaring nodig om met Django Academy te beginnen?
Ervaring vooraf is niet nodig. Django Academy op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.
Hoe lang duurt de les “ListView en DetailView”?
De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.
Kan ik code schrijven en uitvoeren in deze les over Django Academy?
Ja. Elke les over Django Academy bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.
Alle lessen in deze cursus
- ListView en DetailView
- CreateView en UpdateView
- DeleteView en success_url
- get_queryset en templates overschrijven