ListView e DetailView
Visualizzare raccolte e singoli record
ListView e DetailView è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.
Le due pagine di cui avete sempre bisogno
Quasi ogni app mostra un elenco di elementi e una pagina per un singolo elemento. Django include viste generiche che creano entrambe per voi. ✨
Conoscere ListView
ListView recupera molti oggetti e li passa a un template, così non dovete scrivere personalmente né la query né la chiamata di rendering.
Indicare un modello a ListView
Passate un modello a ListView e questa eseguirà automaticamente la query per ogni riga della tabella.
from django.views.generic import ListView
from .models import Post
class PostList(ListView):
model = PostIl nome predefinito del template
ListView cerca un template chiamato app/model_list.html, ad esempio post_list.html, a meno che non lo sovrascriviate.
object_list nel template
All'interno del template, le righe arrivano come object_list, pronte per essere percorse con un ciclo e visualizzate.
{% for post in object_list %}
<li>{{ post.title }}</li>
{% endfor %}Nomi più chiari con context_object_name
Impostate context_object_name affinché la variabile del template abbia un nome naturale, come posts invece di object_list.
class PostList(ListView):
model = Post
context_object_name = "posts"Conoscere DetailView
DetailView recupera un singolo oggetto tramite la sua chiave e visualizza una pagina dedicata a quell'oggetto.
Come DetailView trova l'oggetto
DetailView legge un pk o uno slug dall'URL, quindi esegue get() per caricare esattamente quel record.
from django.views.generic import DetailView
class PostDetail(DetailView):
model = PostIl template dei dettagli e object
DetailView visualizza app/model_detail.html ed espone il record come object nel template.
<h1>{{ object.title }}</h1>
<p>{{ object.body }}</p>Collegarle agli URL
Ogni vista generica diventa un URL con as_view(), che trasforma la classe in una vista chiamabile.
path("posts/", PostList.as_view()),
path("posts/<int:pk>/", PostDetail.as_view()),Meno codice, stesso risultato
Insieme, queste due viste sostituiscono decine di righe di codice ripetitivo e vi forniscono pagine di elenco e di dettaglio quasi senza sforzo. 🚀
Verifica rapida
Da dove recupera DetailView l'oggetto che visualizza?
Riepilogo: elenco e dettaglio
Avete conosciuto ListView per le raccolte e DetailView per un singolo record, avete collegato entrambe con as_view() e avete evitato una grande quantità di codice ripetitivo. 🎉
Domande Frequenti
La lezione «ListView e DetailView» è gratuita?
Sì — il testo completo di «ListView e DetailView» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.
Cosa imparerò in «ListView e DetailView»?
Visualizzare raccolte e singoli record Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Django Academy?
Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «ListView e DetailView»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Django Academy?
Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- ListView e DetailView
- CreateView e UpdateView
- DeleteView e success_url
- Sovrascrivere get_queryset e i template