0Pricing
Django Academy · Lezione

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 = Post

Il 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 = Post

Il 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

  1. ListView e DetailView
  2. CreateView e UpdateView
  3. DeleteView e success_url
  4. Sovrascrivere get_queryset e i template
← Torna a Django Academy