Django Academy · leksjon

ListView og DetailView

Vis samlinger og enkeltposter

Leksjon 1 av 413 trinn

ListView og DetailView er en gratis leksjon i Django Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Django Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Django Academy inneholder totalt 4 leksjoner.

To sider De alltid trenger

Nesten alle apper viser en liste over ting og en side for én ting. Django leveres med generiske visninger som bygger begge for Dem. ✨

Møt ListView

ListView henter mange objekter og sender dem til en mal, slik at De slipper å skrive spørringen og render-kallet selv.

Koble ListView til en modell

De angir en modell for ListView, og den kjører automatisk spørringen for hver rad i tabellen.

from django.views.generic import ListView
from .models import Post

class PostList(ListView):
    model = Post

Standardnavnet på malen

ListView ser etter en mal med navnet app/model_list.html, for eksempel post_list.html, med mindre De overskriver dette.

object_list i malen

I malen kommer radene som object_list, klare til at De kan gå gjennom og vise dem.

{% for post in object_list %}
  <li>{{ post.title }}</li>
{% endfor %}

Penere navn med context_object_name

Angi context_object_name slik at malvariabelen får et naturlig navn, for eksempel posts i stedet for object_list.

class PostList(ListView):
    model = Post
    context_object_name = "posts"

Møt DetailView

DetailView henter ett objekt ved hjelp av nøkkelen og viser en egen side for det.

Slik finner DetailView objektet

DetailView leser en pk eller slug fra URL-en, og kjører deretter get() for å laste inn nøyaktig denne posten.

from django.views.generic import DetailView

class PostDetail(DetailView):
    model = Post

Detaljmalen og object

DetailView viser app/model_detail.html og gjør posten tilgjengelig som object i malen.

<h1>{{ object.title }}</h1>
<p>{{ object.body }}</p>

Koble dem til URL-er

Hver generiske visning blir en URL med as_view(), som gjør klassen om til en kallbar visning.

path("posts/", PostList.as_view()),
path("posts/<int:pk>/", PostDetail.as_view()),

Mindre kode, samme resultat

Sammen erstatter disse to visningene dusinvis av linjer med standardkode og gir Dem liste- og detaljsider nesten uten ekstra arbeid. 🚀

Kort kontroll

Hvor henter DetailView objektet som vises?

Oppsummering: Liste og detalj

De har møtt ListView for samlinger og DetailView for én post, koblet begge med as_view() og sluppet unna store mengder standardkode. 🎉

Gratis å komme i gang

Lær deg Python med en AI-veileder – gratis

Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.

Kurs
30
Leksjoner
120

Ofte stilte spørsmål

Er leksjonen «ListView og DetailView» gratis?

Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Django Academy, inkludert «ListView og DetailView», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Django Academy inneholder totalt 4 leksjoner.

Hva lærer jeg i «ListView og DetailView»?

Vis samlinger og enkeltposter Du øver på Django Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.

Trenger jeg erfaring for å begynne med Django Academy?

Ingen tidligere erfaring er nødvendig. Django Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.

Hvor lang tid tar leksjonen «ListView og DetailView»?

De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.

Kan jeg skrive og kjøre kode i denne Django Academy-leksjonen?

Ja. Alle Django Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.

Alle leksjonene i dette kurset

  1. ListView og DetailView
  2. CreateView og UpdateView
  3. DeleteView og success_url
  4. Overstyre get_queryset og Templates
← Tilbake til Django Academy