0Pricing
Django Academy · Lezione

CreateView e UpdateView

Creare pagine di aggiunta e modifica a partire da un modello

CreateView e UpdateView è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 2 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Django Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Django Academy include 4 lezioni in totale.

Pagine che scrivono dati

Visualizzare i dati è solo metà del lavoro. Per aggiungere e modificare record, potete usare CreateView e UpdateView.

Conoscere CreateView

CreateView crea una pagina di inserimento: visualizza un modulo, convalida i dati e salva al posto vostro un nuovo record.

Un modulo a partire dai campi

Indicate a CreateView i fields desiderati e questa genererà un modulo corrispondente direttamente dal vostro modello.

from django.views.generic import CreateView

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

Il nome del template del modulo

Per impostazione predefinita, CreateView e UpdateView cercano entrambe app/model_form.html, ad esempio post_form.html.

Visualizzare il modulo

All'interno del template, il modulo generato è disponibile come form, quindi potete visualizzarne i campi e un pulsante di invio.

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

Conoscere UpdateView

UpdateView funziona proprio come CreateView, ma prima carica un record esistente, così il modulo viene compilato in anticipo.

Modificare un record esistente

UpdateView legge un pk dall'URL, recupera quell'oggetto e vi salva nuovamente le modifiche.

from django.views.generic import UpdateView

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

Dove andare dopo il salvataggio

Dopo un salvataggio riuscito, la vista esegue un redirect. Impostate success_url per controllare esattamente la destinazione successiva degli utenti.

from django.urls import reverse_lazy

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

Oppure lasciate decidere al modello

Eviti success_url assegnando al modello un metodo get_absolute_url; la vista reindirizzerà automaticamente a quell'URL.

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

Collegare gli URL di modifica

Create non richiede alcun pk, mentre update sì: il relativo URL ne cattura uno con as_view(), come gli altri.

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

La potenza dei form condivisi

Poiché riutilizzano lo stesso form e lo stesso template, le pagine di aggiunta e modifica rimangono coerenti con pochissimo codice aggiuntivo. 💪

Verifica rapida

Qual è la differenza principale tra CreateView e UpdateView?

Riepilogo: creazione e modifica

Ha utilizzato CreateView per aggiungere record e UpdateView per modificarli, ha condiviso un unico template per il form e ha gestito i reindirizzamenti con success_url. 🎉

Domande Frequenti

La lezione «CreateView e UpdateView» è gratuita?

Sì — il testo completo di «CreateView e UpdateView» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Django Academy, passa a CoddyKit PRO. Il corso Django Academy include 4 lezioni in totale.

Cosa imparerò in «CreateView e UpdateView»?

Creare pagine di aggiunta e modifica a partire da un modello Eserciti Django Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Django Academy?

Non è richiesta alcuna esperienza precedente. Django Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 2 di 4.

Quanto tempo richiede la lezione «CreateView e UpdateView»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Django Academy?

Sì. Ogni lezione Django Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. ListView e DetailView
  2. CreateView e UpdateView
  3. DeleteView e success_url
  4. Sovrascrivere get_queryset e i template
← Torna a Django Academy