ListView og DetailView
Vis samlinger og enkeltposter
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 = PostStandardnavnet 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 = PostDetaljmalen 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. 🎉
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
- ListView og DetailView
- CreateView og UpdateView
- DeleteView og success_url
- Overstyre get_queryset og Templates