DeleteView เป็น View ใน Django ใช้ลบข้อมูลโมเดลจาก Frontend เป็น built-in view ใช้ง่าย คล้ายหน้า Admin ในการลบ เหมาะสำหรับโปรเจกต์จริง
ตัวอย่าง
สร้างโปรเจกต์และแอป ชื่อ "tutorial11" และ "modelFormsDemo"
ใน settings.py เพิ่มแอป:
INSTALLED_APPS+ = ['modelFormsDemo']
ใน urls.py ของโปรเจกต์:
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('modelFormsDemo.urls'))
]
ใน urls.py ของแอป:
from django.urls import path, include
from . import views
urlpatterns = [
path('', views.home, name="home"),
path('student/delete//', views.StudentDeleteView.as_view(), name="delete"),
path('success/', views.success, name='success')
]
สร้าง 3 URLs: หน้าแรก, DeleteView สำหรับลบ, Success สำหรับ redirect
ใน models.py:
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=100)
standard = models.CharField(max_length=100)
section = models.CharField(max_length=100)
ใน views.py:
from django.shortcuts import render
from .forms import StudentForm
from django.views.generic.edit import DeleteView
from .models import Student
from django.urls import reverse_lazy
def home(request):
if request.method == 'POST':
form = StudentForm(request.POST)
if form.is_valid():
form.save()
stuForm = StudentForm()
return render(request, 'home.html', {"stu_form": stuForm})
class StudentDeleteView(DeleteView):
model = Student
template_name = 'delete_view.html'
success_url = reverse_lazy("success")
ใน forms.py:
from django import forms
from .models import Student
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = ['name', 'standard', 'section']
สร้าง templates และไฟล์ home.html, delete_view.html, success.html
ใน home.html (เหมือน UpdateView)
ใน delete_view.html:
<!DOCTYPE html> <html>
<head> <title>TUT</title> </head>
<body>
<form method="post">{% csrf_token %}
<p>Are you sure you want to delete "{{ object }}"?</p>
<input type="submit" value="Confirm">
</form>
</body> </html>
ใน success.html:
<!DOCTYPE html> <html>
<head> <title>TUT</title> </head>
<body>
<h2>Success</h2>
</body> </html>
เอาต์พุต
Home.html – 
เข้า https://127.0.0.1:8000/student/delete/(student object id)/ จะเห็น delete_view.html
Delete_view.html – 