0Pricing
Django Academy · Ders

DeleteView ve success_url

Silme işlemlerini onaylayın ve ardından yönlendirin.

DeleteView ve success_url, CoddyKit'te ücretsiz bir Django Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Django Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Django Academy kursu toplamda 4 dersten oluşur.

Bu dersin bazı bölümleri henüz çevrilmemiş olup İngilizce olarak gösterilmektedir.

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

Sıkça Sorulan Sorular

“DeleteView ve success_url” dersi ücretsiz mi?

Evet — “DeleteView ve success_url” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Django Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Django Academy kursu toplamda 4 dersten oluşur.

“DeleteView ve success_url” dersinde ne öğreneceğim?

Silme işlemlerini onaylayın ve ardından yönlendirin. Django Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Django Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Django Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“DeleteView ve success_url” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Django Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Django Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. ListView ve DetailView
  2. CreateView ve UpdateView
  3. DeleteView ve success_url
  4. get_queryset ve Şablonları Geçersiz Kılma
← Django Academy Sayfasına Dön