Django Academy · Oppitunti

CreateView ja UpdateView

Luo mallin pohjalta lisäys- ja muokkaussivut

Oppitunti 2/413 vaihetta

CreateView ja UpdateView on ilmainen Django Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/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.

Sivut, jotka kirjoittavat tietoja

Tietojen näyttäminen on vasta puolet työstä. Tietueiden lisäämiseen ja muokkaamiseen käytät CreateView- ja UpdateView-näkymiä.

Tutustu CreateView-näkymään

CreateView muodostaa lisäyssivun: se renderöi lomakkeen, validoi syötteen ja tallentaa puolestasi uuden tietueen.

Lomake kentistä

Kerro CreateView-näkymälle haluamasi fields-kentät, niin se luo vastaavan lomakkeen suoraan mallisi perusteella.

from django.views.generic import CreateView

class PostCreate(CreateView):
    model = Post
    fields = ["title", "body"]

Lomakkeen mallipohjan nimi

CreateView ja UpdateView etsivät oletusarvoisesti mallipohjaa app/model_form.html, esimerkiksi post_form.html.

Lomakkeen renderöinti

Luotu lomake saapuu mallipohjaan form-muuttujana, joten renderöit sen kentät ja lähetyspainikkeen.

<form method="post">{% csrf_token %}
  {{ form.as_p }}
  <button>Save</button>
</form>

Tutustu UpdateView-näkymään

UpdateView toimii aivan kuten CreateView, mutta lataa ensin olemassa olevan tietueen, joten lomake on aluksi valmiiksi täytetty.

Olemassa olevan tietueen muokkaaminen

UpdateView lukee URL-osoitteesta pk-arvon, hakee kyseisen olion ja tallentaa tekemäsi muutokset siihen.

from django.views.generic import UpdateView

class PostUpdate(UpdateView):
    model = Post
    fields = ["title", "body"]

Minne siirrytään tallennuksen jälkeen

Onnistuneen tallennuksen jälkeen näkymä ohjaa käyttäjän uuteen osoitteeseen. Määritä success_url hallitaksesi tarkasti, minne käyttäjä siirtyy seuraavaksi.

from django.urls import reverse_lazy

class PostCreate(CreateView):
    success_url = reverse_lazy("post_list")

Tai anna mallin päättää

Ohita success_url määrittämällä mallillesi get_absolute_url; näkymä uudelleenohjaa sinne automaattisesti.

def get_absolute_url(self):
    return reverse("post_detail", args=[self.pk])

Muokkaus-URL-osoitteiden määrittäminen

Create ei tarvitse pk:ta, mutta update tarvitsee, joten sen URL-osoite poimii yhden as_view()-metodilla muiden tapaan.

path("new/", PostCreate.as_view()),
path("<int:pk>/edit/", PostUpdate.as_view()),

Lomakkeen yhteinen voima

Koska molemmat käyttävät samaa lomaketta ja mallipohjaa, lisäys- ja muokkaussivut pysyvät yhdenmukaisina lähes ilman lisäkoodia. 💪

Pikatarkistus

Mikä on CreateView- ja UpdateView-luokkien tärkein ero?

Kertaus: Create ja Update

Käytit CreateView-näkymää tietueiden lisäämiseen ja UpdateView-näkymää niiden muokkaamiseen, jaoit yhden lomakemallipohjan ja ohjasit uudelleenohjauksia success_url-arvolla. 🎉

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 ”CreateView ja UpdateView” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Django Academy-oppimispolun 3 oppituntia, myös oppitunnin “CreateView ja UpdateView”. 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 ”CreateView ja UpdateView”?

Luo mallin pohjalta lisäys- ja muokkaussivut 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 2/4.

Kuinka kauan ”CreateView ja UpdateView”-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