DeleteView e success_url
Confirme exclusões e redirecione depois
DeleteView e success_url é uma aula grátis de Django Academy no CoddyKit. Esta é a aula 3 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Django Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Django Academy inclui 4 aulas no total.
Partes desta aula ainda não foram traduzidas e aparecem em inglês.
Removing Records Safely
Sometimes data has to go. DeleteView handles removing a record, with a confirmation step built in. 🗑️
Meet DeleteView
DeleteView loads one object by its pk and prepares to delete it once the user confirms.
from django.views.generic import DeleteView
class PostDelete(DeleteView):
model = PostWhy Confirmation Matters
Deleting is permanent, so DeleteView shows a confirmation page on GET before anything is removed.
The Confirm Template
By default DeleteView looks for app/model_confirm_delete.html, like post_confirm_delete.html.
The Confirmation Form
The confirm page posts back to the same URL, and that POST request is what actually triggers the delete.
<form method="post">{% csrf_token %}
<p>Delete {{ object }}?</p>
<button>Yes, delete</button>
</form>Where success_url Comes In
After deleting, the user needs somewhere to go. success_url sets that destination explicitly.
from django.urls import reverse_lazy
class PostDelete(DeleteView):
model = Post
success_url = reverse_lazy("post_list")Why reverse_lazy Here
Use reverse_lazy, not reverse, because URLs are not ready when the class body is first read at import time.
reverse vs reverse_lazy
reverse resolves a URL immediately, while reverse_lazy waits until the value is actually needed.
Wiring the Delete URL
The delete URL captures a pk so DeleteView knows which record to remove.
path("<int:pk>/delete/", PostDelete.as_view()),Linking to Delete
From a detail page, link to delete using the url tag and the object pk so the right record is targeted.
<a href="{% url 'post_delete' object.pk %}">Delete</a>Safe by Design
The GET confirm plus POST delete pattern means no record vanishes from a stray click or a crawler. ✅
Quick Check
What does success_url control in a DeleteView?
Recap: Deleting Records
You used DeleteView with a GET confirm and POST delete, then sent users onward with success_url and reverse_lazy. 🎉
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “DeleteView e success_url” é grátis?
Sim — o texto completo de “DeleteView e success_url” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Django Academy, atualize para CoddyKit PRO. O curso de Django Academy inclui 4 aulas no total.
O que vou aprender em “DeleteView e success_url”?
Confirme exclusões e redirecione depois Você pratica Django Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Django Academy?
Nenhuma experiência prévia é necessária. Django Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 4.
Quanto tempo leva a aula “DeleteView e success_url”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Django Academy?
Sim. Cada aula de Django Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- ListView e DetailView
- CreateView e UpdateView
- DeleteView e success_url
- Substituindo get_queryset e Templates