如何在Django中添加UpdateView?
UpdateView是Django中的一个视图,用于从前端更新任何模型数据。它是一个内置视图,易于应用。它在更新视图方面类似于管理页面。在本文中,我们将通过一个示例演示如何在Django中使用UpdateView。
首先,创建一个Django项目和一个应用。我创建的项目名为**"tutorial11"**,应用名为**"modelFormsDemo"**。
现在,让我们做一些基本的事情。
在**settings.py**中添加应用。
INSTALLED_APPS+ = ['modelFormsDemo']
在项目的**urls.py**中,包含应用的urls。
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,以及更新后重定向的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 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']
这里我们简单地创建了一个我们将要渲染的表单。
现在创建一个**templates**文件夹,并在其中添加三个文件;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/(学生对象ID)/,您将看到我们的update_view.html。
**Update_view.html**:

数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP