0Pricing
Django Academy · Lektion

DeleteView und success_url

Löschvorgänge bestätigen und anschließend weiterleiten

DeleteView und success_url ist eine kostenlose Django Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Django Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.

Teile dieser Lektion wurden noch nicht übersetzt und werden auf Englisch angezeigt.

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 = Post

Why 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. 🎉

Häufig gestellte Fragen

Ist die Lektion „DeleteView und success_url“ kostenlos?

Ja — der vollständige Text von „DeleteView und success_url“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Django Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Django Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „DeleteView und success_url“?

Löschvorgänge bestätigen und anschließend weiterleiten Du übst Django Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Django Academy zu starten?

Keine Vorkenntnisse erforderlich. Django Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.

Wie lange dauert die Lektion „DeleteView und success_url“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Django Academy-Lektion Code schreiben und ausführen?

Ja. Jede Django Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. ListView und DetailView
  2. CreateView und UpdateView
  3. DeleteView und success_url
  4. get_queryset und Templates überschreiben
← Zurück zu Django Academy