DeleteView là một chế độ xem trong Django được sử dụng để xóa bất kỳ dữ liệu mô hình nào khỏi giao diện người dùng. Đó là một chế độ xem tích hợp có thể dễ dàng áp dụng. Nó hoạt động giống như trang quản trị trong việc xóa chế độ xem. Nó thực sự hữu ích trong các dự án trong thế giới thực.
Trước hết, hãy tạo một dự án Django và một ứng dụng. Tôi đã tạo dự án với tên "tutorial11" và ứng dụng có tên "modelFormsDemo" .
Bây giờ, chúng ta hãy làm một số điều cơ bản. Thêm ứng dụng trong settings.py -
INSTALLED_APPS+ = ['modelFormsDemo']
Trong urls.py của dự án -
from django.contrib import admin from django.urls import path,include urlpatterns = [ path('admin/', admin.site.urls), path('', include('modelFormsDemo.urls')) ]
Ở đây chúng tôi đã bao gồm url của ứng dụng.
Trong urls.py của ứng dụng -
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') ]
Ở đây, chúng tôi đã tạo 3 URL:một để hiển thị giao diện người dùng, DeleteView để xóa và Thành công để chuyển hướng sau khi xóa.
Ví dụ
Trong models.py , thêm cái này -
from django.db import models # Create your models here. class Student(models.Model): name=models.CharField(max_length=100) standard=models.CharField(max_length=100) section=models.CharField(max_length=100)
Ở đây chúng tôi đã tạo một mô hình đơn giản.
Trong views.py , thêm phần sau -
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 # Create your views here. 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")
Ở đây, trong chế độ xem chính, chúng tôi đã hiển thị giao diện người dùng và trong DeleteView, chúng tôi hiển thị delete_view.html sẽ yêu cầu xác nhận xóa.
Tạo form.py trong thư mục ứng dụng và viết cái này -
from django import forms from .models import Student class StudentForm(forms.ModelForm): class Meta: model=Student fields=['name', 'standard', 'section']
Ở đây, chúng tôi đã tạo biểu mẫu đơn giản mà chúng tôi sẽ hiển thị ở chế độ xem tại nhà.
Bây giờ, hãy tạo một mẫu và thêm ba tệp bên trong nó home.html, delete_view.html và thành công.html.
Trong 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>
Trong 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>
Trong thành công.html -
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> <h2>Success</h2> </body> </html>
Cả ba đều là tệp HTML mà chúng tôi đang kết xuất. home.html là để thêm sinh viên, delete_view.html là để xóa học sinh và thành công.html để chuyển hướng.
Bây giờ bạn có thể tiến hành kiểm tra đầu ra.
Đầu ra
Trang chủ.html -
Nếu bạn truy cập https://127.0.0.1:8000/student/delete/(student object id) /, thì bạn sẽ thấy delete_view.html của chúng tôi.
Delete_view.html -