当前位置: 首页 > news >正文

Django UpdateView视图

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

1,添加视图

Test/app3/views.py

from django.shortcuts import render# Create your views here.
from .models import Bookfrom django.views.generic import ListView
class BookListView(ListView):model = Bookcontext_object_name = 'books'template_name = 'books/book_list.html'paginate_by = 10 # 设置展示页数数据from django.views.generic import DetailView
class BookDetailView(DetailView):model = Bookcontext_object_name = 'book'template_name = 'books/book_detail.html'from django.views.generic.edit import CreateView
class BookCreateView(CreateView):model = Booktemplate_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 = Bookfields = ['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 viewsfrom .views import BookListView
from .views import BookDetailView
from .views import BookCreateView
from .views import BookUpdateViewurlpatterns = [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/

http://www.lryc.cn/news/369768.html

相关文章:

  • 【CS.SE】2024年,你应该选择计算机专业吗?详细分析与未来展望
  • 后端开发面经系列 -- 华为OD -- C++面经(全)
  • 3072. 将元素分配到两个数组中 II Rust 线段树 + 离散化
  • day35|1005.K次取反后最大化的数组和 134. 加油站135. 分发糖果
  • HWA和BSS区别
  • 【Excel】Excel中将日期格式转换为文本格式,并按日期显示。
  • 物联网学习小记
  • 代码随想录-Day29
  • C/C++ 进阶(6)红黑树
  • 【Vue】构建vuex-cart模块
  • 如何成为嵌入式系统工程师?
  • 【AI大模型】Transformers大模型库(七):单机多卡推理之device_map
  • 驱动代码编写(一)
  • Prompt-to-Prompt Image Editing with Cross Attention Control
  • 实验11 OSPF协议配置
  • ChatGPT-4o, 腾讯元宝,通义千问对比测试中文文化
  • node.js学习
  • python将一个图片雕刻镂空成二维码
  • OS进程取样器OS Process Sampler执行CMD/Shell命令
  • excel两个数据表格,怎样实现筛选的联动?
  • python,django好的get和post请求
  • volatile的用法
  • MySQL 与 PostgreSQL 关键对比二(SQL语法)
  • 徐州服务器租用该如何维护?
  • C++习题精选(4)—— 栈
  • Web前端ES6-ES13笔记合集(下)
  • 我要成为算法高手-双指针篇
  • Fake news detection: A survey of graph neural network methods
  • HCIE认证,这些误区要避开
  • 主题切换之CSS文件篇