DeleteView ডজ্যাঙ্গোতে একটি ভিউ যা ফ্রন্টএন্ড থেকে যেকোনো মডেল ডেটা ডিলিট করতে ব্যবহৃত হয়। এটি একটি বিল্ট-ইন ভিউ যা সহজে প্রয়োগ করা যায়। এটি অ্যাডমিন পেজের মতো ডিলিট ভিউয়ে কাজ করে। এটি রিয়েল-ওয়ার্ল্ড প্রজেক্টে খুব সহায়ক।
প্রথমে একটি ডজ্যাঙ্গো প্রজেক্ট এবং একটি অ্যাপ তৈরি করুন। আমি প্রজেক্টের নাম দিয়েছি "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'))
]
এখানে আমরা অ্যাপের url ইনক্লুড করেছি।
অ্যাপের 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')
]
এখানে আমরা ৩টি URL তৈরি করেছি: একটি ফ্রন্টএন্ড রেন্ডার করার জন্য, ডিলিট করার জন্য DeleteView, এবং ডিলিট করার পর রিডাইরেক্ট করার জন্য Success।
উদাহরণ
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")
এখানে, home ভিউতে আমরা ফ্রন্টএন্ড রেন্ডার করেছি এবং DeleteView-এ, আমরা delete_view.html রেন্ডার করেছি যা ডিলিট কনফার্মেশন চাইবে।
অ্যাপ ডিরেক্টরিতে forms.py তৈরি করুন এবং এটি লিখুন:
from django import forms
from .models import Student
class StudentForm(forms.ModelForm):
class Meta:
model = Student
fields = ['name', 'standard', 'section']
এখানে আমরা আমাদের সিম্পল ফর্ম তৈরি করেছি যা আমরা home ভিউতে রেন্ডার করব।
এখন একটি templates ফোল্ডার তৈরি করুন এবং সেখানে তিনটি ফাইল যোগ করুন: home.html, delete_view.html এবং success.html।
home.html-এ:
<!DOCTYPE html>
<html>
<head>
<title>TUT</title>
</head>
<body>
{% for fm in stu_form %}
<form method="post">
{% csrf_token %}
{{fm.errors}}<br>
{{fm.label}}:{{fm}}<br>
{% endfor %}
<button type="submit">Submit</button>
</form>
</body>
</html>
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>
এই তিনটি HTML ফাইল যা আমরা রেন্ডার করছি। home.html ছাত্র যোগ করার জন্য, delete_view.html ছাত্র ডিলিট করার জন্য, এবং success.html রিডাইরেক্ট করার জন্য।
এখন আপনি আউটপুট চেক করতে পারেন।
আউটপুট
Home.html -

যদি আপনি https://127.0.0.1:8000/student/delete/(student object id)/ এ যান, তবে আপনি আমাদের delete_view.html দেখবেন।
Delete_view.html -
