CreateView ja UpdateView
Luo mallin pohjalta lisäys- ja muokkaussivut
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. 🎉
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
- ListView ja DetailView
- CreateView ja UpdateView
- DeleteView ja success_url
- get_queryset-metodin ja Templates-määritysten ylikirjoittaminen