DeleteView는 프론트엔드에서 모델 데이터를 삭제하는 데 사용되는 Django의 보기입니다. 쉽게 적용할 수 있는 빌트인 뷰입니다. 보기를 삭제할 때 관리자 페이지와 같은 역할을 합니다. 실제 프로젝트에서 정말 유용합니다.
먼저 Django 프로젝트와 앱을 생성합니다. "tutorial11"이라는 이름으로 프로젝트를 만들었습니다. 및 이름이 "modelFormsDemo"인 앱 .
이제 몇 가지 기본적인 작업을 수행해 보겠습니다. settings.py에 앱 추가 -
INSTALLED_APPS+ = ['modelFormsDemo']
프로젝트의 url.py에서 -
from django.contrib import admin
from django.urls import path,include
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('modelFormsDemo.urls'))
] 여기에 앱의 URL이 포함되었습니다.
앱의 url.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개의 URL을 만들었습니다. 하나는 프론트엔드 렌더링용, DeleteView는 삭제용, Success는 삭제 후 리디렉션용입니다.
예시
models.py에서 , 이것을 추가하십시오 -
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)
여기에서 간단한 모델을 만들었습니다.
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
# 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") 여기에서는 홈 보기에서 프런트엔드를 렌더링하고 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.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 리디렉션을 위해.
이제 출력을 확인할 수 있습니다.
출력
홈.html -

https://127.0.0.1:8000/student/delete/(student object id)/로 이동하면 delete_view.html이 표시됩니다.
Delete_view.html -
