DeleteView e success_url
Confermare le eliminazioni e reindirizzare al termine
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 = PostPerché 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. 🎉
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
- ListView e DetailView
- CreateView e UpdateView
- DeleteView e success_url
- Sovrascrivere get_queryset e i template