Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Django에서 UpdateView를 추가하는 방법은 무엇입니까?

<시간/>

UpdateView는 프론트엔드에서 모델 데이터를 업데이트하는 데 사용되는 Django의 보기입니다. 쉽게 적용할 수 있는 빌트인 뷰입니다. 보기를 업데이트할 때 관리 페이지와 같은 역할을 합니다. 이 기사에서는 예를 들어 Django에서 UpdateView를 사용하는 방법을 보여줍니다.

먼저 Django 프로젝트와 앱을 생성합니다. "tutorial11"이라는 이름으로 프로젝트를 만들었습니다. 및 이름이 "modelFormsDemo"인 앱 .

이제 몇 가지 기본적인 작업을 수행해 보겠습니다.

settings.py에 앱 추가 -

INSTALLED_APPS+ = ['modelFormsDemo']

프로젝트의 url.py에서 , 앱의 URL을 포함합니다.

from django.contrib import admin
from django.urls import path,include

urlpatterns = [
   path('admin/', admin.site.urls),
   path('', include('modelFormsDemo.urls'))
]

앱의 url.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.htmlsuccess.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>

그것으로 모든 것이 설정되었습니다. 이제 출력을 확인할 수 있습니다.

출력

홈.html -

Django에서 UpdateView를 추가하는 방법은 무엇입니까?

이제 https://127.0.0.1:8000/student/edit/(student object id)/로 이동하면 update_view.html이 표시됩니다.

Update_view.html -

Django에서 UpdateView를 추가하는 방법은 무엇입니까?