Django Academy · Lezione

DeleteView e success_url

Confermare le eliminazioni e reindirizzare al termine

Lezione 3 di 413 passaggi

DeleteView e success_url è una lezione Django Academy gratuita su CoddyKit. Questa è la lezione 3 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.

Rimuovere i record in sicurezza

A volte è necessario eliminare dei dati. DeleteView gestisce la rimozione di un record, includendo un passaggio di conferma. 🗑️

Conoscere DeleteView

DeleteView carica un oggetto tramite il relativo pk e si prepara a eliminarlo dopo la conferma dell'utente.

from django.views.generic import DeleteView

class PostDelete(DeleteView):
    model = Post

Perché la conferma è importante

L'eliminazione è permanente, quindi DeleteView mostra una pagina di conferma con una richiesta GET prima di rimuovere qualsiasi elemento.

Il template di conferma

Per impostazione predefinita, DeleteView cerca app/model_confirm_delete.html, come post_confirm_delete.html.

Il form di conferma

La pagina di conferma invia i dati allo stesso URL e proprio la richiesta POST attiva effettivamente l'eliminazione.

<form method="post">{% csrf_token %}
  <p>Delete {{ object }}?</p>
  <button>Yes, delete</button>
</form>

Il ruolo di success_url

Dopo l'eliminazione, l'utente deve essere reindirizzato da qualche parte. success_url imposta esplicitamente la destinazione.

from django.urls import reverse_lazy

class PostDelete(DeleteView):
    model = Post
    success_url = reverse_lazy("post_list")

Perché usare reverse_lazy

Utilizzi reverse_lazy, non reverse, perché gli URL non sono ancora disponibili quando il corpo della classe viene letto per la prima volta durante l'importazione.

reverse e reverse_lazy

reverse risolve immediatamente un URL, mentre reverse_lazy attende finché il valore non è effettivamente necessario.

Collegare l'URL di eliminazione

L'URL di eliminazione cattura un pk, così DeleteView sa quale record rimuovere.

path("<int:pk>/delete/", PostDelete.as_view()),

Collegare l'eliminazione

Da una pagina di dettaglio, crei il collegamento all'eliminazione usando il url tag e il pk dell'oggetto, in modo da selezionare il record corretto.

<a href="{% url 'post_delete' object.pk %}">Delete</a>

Sicurezza integrata nel design

La combinazione di conferma tramite GET ed eliminazione tramite POST impedisce che un record scompaia a causa di un clic accidentale o di un crawler. ✅

Verifica rapida

Che cosa controlla success_url in una DeleteView?

Riepilogo: eliminazione dei record

Ha utilizzato DeleteView con una conferma tramite GET e un'eliminazione tramite POST, quindi ha reindirizzato gli utenti con success_url e reverse_lazy. 🎉

Gratis per iniziare

Impara Python con un tutor IA — gratis

Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.

Corsi
30
Lezioni
120

Domande Frequenti

La lezione «DeleteView e success_url» è gratuita?

Sì — il testo completo di «DeleteView e success_url» è 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 «DeleteView e success_url»?

Confermare le eliminazioni e reindirizzare al termine 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 3 di 4.

Quanto tempo richiede la lezione «DeleteView e success_url»?

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