Django Academy · Oppitunti

ListView ja DetailView

Näytä kokoelmat ja yksittäiset tietueet

Oppitunti 1/413 vaihetta

ListView ja DetailView on ilmainen Django Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Django Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Django Academy-kurssilla on yhteensä 4 oppituntia.

Kaksi aina tarvittavaa sivua

Lähes jokainen sovellus näyttää asioiden luettelon ja yhdelle asialle tarkoitetun sivun. Django sisältää yleiskäyttöiset näkymät, jotka rakentavat molemmat puolestasi. ✨

Tutustu ListView-näkymään

ListView hakee useita olioita ja välittää ne mallipohjalle, joten sinun ei tarvitse itse kirjoittaa kyselyä ja renderöintikutsua.

Määritä ListView käyttämään mallia

Anna ListView-näkymälle malli, niin se suorittaa kyselyn automaattisesti taulun jokaiselle riville.

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

class PostList(ListView):
    model = Post

Oletusarvoinen mallipohjan nimi

ListView etsii oletusarvoisesti mallipohjaa nimeltä app/model_list.html, esimerkiksi post_list.html, ellet korvaa asetusta.

object_list mallipohjassa

Mallipohjassa rivit saapuvat object_list-muuttujana, jonka läpi voit käydä silmukalla ja jonka tiedot voit näyttää.

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

Selkeämmät nimet context_object_name-arvolla

Aseta context_object_name, jotta mallipohjan muuttujalla on luonteva nimi, kuten posts object_list-nimen sijaan.

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

Tutustu DetailView-näkymään

DetailView hakee yhden olion sen avaimen perusteella ja renderöi sille yhden kohdennetun sivun.

Miten DetailView löytää olion

DetailView lukee URL-osoitteesta pk-arvon tai slug-arvon ja suorittaa sitten get()-haun ladatakseen täsmälleen kyseisen tietueen.

from django.views.generic import DetailView

class PostDetail(DetailView):
    model = Post

Tietojen yksityiskohtamallipohja ja object

DetailView renderöi mallipohjan app/model_detail.html ja tarjoaa tietueen mallipohjassa object-muuttujana.

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

Liitä ne URL-osoitteisiin

Kummastakin yleiskäyttöisestä näkymästä tulee URL-osoite as_view()-metodilla, joka muuntaa luokan kutsuttavaksi näkymäksi.

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

Vähemmän koodia, sama lopputulos

Yhdessä nämä kaksi näkymää korvaavat kymmeniä rivejä toisteista koodia ja antavat käyttöön luettelo- ja tietuesivut lähes ilmaiseksi. 🚀

Pikatarkistus

Mistä DetailView hakee näyttämänsä olion?

Kertaus: luettelo ja yksityiskohdat

Tutustuit ListView-näkymään kokoelmia varten ja DetailView-näkymään yhtä tietuetta varten, liitit molemmat as_view()-metodilla ja vältit suuren määrän toisteista koodia. 🎉

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”ListView ja DetailView” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Django Academy-oppimispolun 3 oppituntia, myös oppitunnin “ListView ja DetailView”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Django Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”ListView ja DetailView”?

Näytä kokoelmat ja yksittäiset tietueet Harjoittelet Django Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Django Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Django Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 1/4.

Kuinka kauan ”ListView ja DetailView”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Django Academy-oppitunnilla?

Kyllä. Jokainen Django Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. ListView ja DetailView
  2. CreateView ja UpdateView
  3. DeleteView ja success_url
  4. get_queryset-metodin ja Templates-määritysten ylikirjoittaminen
← Takaisin: Django Academy