UpdateView เป็นมุมมองใน Django ซึ่งใช้เพื่ออัปเดตข้อมูลโมเดลจากส่วนหน้า เป็นมุมมองในตัวที่นำไปใช้ได้ง่าย ทำหน้าที่เหมือนหน้าผู้ดูแลระบบในการอัปเดตมุมมอง ในบทความนี้ เราจะยกตัวอย่างและสาธิตวิธีใช้ UpdateView ใน Django
ขั้นแรก สร้างโปรเจ็กต์ Django และแอพ ฉันสร้างโครงการด้วยชื่อ "tutorial11" และแอปชื่อ "modelFormsDemo" .
มาทำสิ่งพื้นฐานกัน
เพิ่มแอปใน settings.py −
INSTALLED_APPS+ = ['modelFormsDemo']
ใน urls.py ของโปรเจ็กต์ รวม URL ของแอปด้วย
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/edit//', views.StudentUpdateView.as_view(), name="update"),
path('success/', views.success, name='success')
] ที่นี่เราสร้างสาม URL; อันหนึ่งสำหรับเรนเดอร์ฟรอนต์เอนด์ อันหนึ่งสำหรับ UpdateView สำหรับการอัปเดต และความสำเร็จสำหรับการเปลี่ยนเส้นทางหลังจากอัพเดต
ตัวอย่าง
ใน 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 UpdateView
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 StudentUpdateView(UpdateView):
model=Student
fields="__all__"
template_name='update_view.html'
success_url='/success/'
def success(request):
return render(request,'success.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, update_view.html และ success.html.
ใน home.html และ update_view.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> ใน success.html ให้เพิ่มบรรทัดต่อไปนี้ −
<!DOCTYPE html> <html> <head> <title>TUT</title> </head> <body> <h2>Success</h2> </body> </html>
ด้วยเหตุนี้ทุกอย่างจึงถูกตั้งค่า ตอนนี้คุณสามารถดำเนินการตรวจสอบผลลัพธ์ได้
ผลลัพธ์
Home.html −

ตอนนี้ ถ้าคุณไปที่ http://127.0.0.1:8000/student/edit/(student object id)/ คุณจะเห็น update_view.html ของเรา
Update_view.html −
