Django UpdateView视图

UpdateView是Django中的一个通用视图,用于处理对象的更新操作。它允许用户更新一个已经存在的对象。UpdateView通常与一个模型表单一起使用,这样用户就可以看到当前对象的值,并可以修改它们。

1,添加视图

Test/app3/views.py

复制代码
from django.shortcuts import render

# Create your views here.
from .models import Book

from django.views.generic import ListView
class BookListView(ListView):
    model = Book
    context_object_name = 'books'
    template_name = 'books/book_list.html'
    paginate_by = 10 # 设置展示页数数据


from django.views.generic import DetailView
class BookDetailView(DetailView):
    model = Book
    context_object_name = 'book'
    template_name = 'books/book_detail.html'


from django.views.generic.edit import CreateView
class BookCreateView(CreateView):
    model = Book
    template_name = 'books/book_form.html'
    fields = ['title', 'author', 'publication_date']
    success_url = '/app3/books/' # 重定向至书本列表路由地址

from django.urls import reverse_lazy
from django.views.generic.edit import UpdateView
class BookUpdateView(UpdateView):
    model = Book
    fields = ['title', 'author', 'publication_date']
    template_name = 'books/book_edit.html'
    success_url = reverse_lazy('book_list')

2,添加路由地址

Test/app3/urls.py

复制代码
from django.urls import path
from . import views

from .views import BookListView
from .views import BookDetailView
from .views import BookCreateView
from .views import BookUpdateView

urlpatterns = [
    path('books/', BookListView.as_view(), name='book_list'),
    path('books/<int:pk>/', BookDetailView.as_view(), name='book_detail'),
    path('books/new/', BookCreateView.as_view(), name='book_new'),
    path('books/<int:pk>/edit/', BookUpdateView.as_view(), name='BookUpdateView'),

]

3,添加html代码

Test/templates/books/book_edit.html

复制代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<form method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <button type="submit">更新</button>
</form>

</body>
</html>

4,访问页面

Test/templates/books/book_edit.html

http://127.0.0.1:8000/app3/books/1/edit/

相关推荐
逍遥德11 分钟前
JPA 操作对象图 (Object Graph) 详解
开发语言·python
Cache技术分享14 分钟前
280. Java Stream API - Debugging Streams:如何调试 Java 流处理过程?
前端·后端
Charlie_Byte14 分钟前
在 Kratos 中设置自定义 HTTP 响应格式
后端·go
deephub21 分钟前
DeepSeek 开年王炸:mHC 架构用流形约束重构 ResNet 残差连接
人工智能·python·深度学习·神经网络·残差链接
辜月十21 分钟前
Conda配置文件.condarc
后端
真是他22 分钟前
C# UDP 基本使用
后端
今天没有盐26 分钟前
Python字符串操作全解析:从基础定义到高级格式化
后端·scala·编程语言
上班职业摸鱼人26 分钟前
MMDetection 框架完整教程(从入门到实战,代码可复现)
python
意趣新28 分钟前
OpenCV 中摄像头视频采集 + 实时显示 + 视频保存
python·opencv·计算机视觉
清水白石00830 分钟前
《Python 中 deque vs list:性能差异全解析与高效数据结构实战指南》
数据结构·python·list