当前位置:   article > 正文

Django DeleteView视图

Django DeleteView视图

 Django 的 DeleteView 是一个基于类的视图,用于处理对象的删除操作

1,添加视图函数

Test/app3/views.py

  1. from django.shortcuts import render
  2. # Create your views here.
  3. from .models import Book
  4. from django.views.generic import ListView
  5. class BookListView(ListView):
  6. model = Book
  7. context_object_name = 'books'
  8. template_name = 'books/book_list.html'
  9. paginate_by = 10 # 设置展示页数数据
  10. from django.views.generic import DetailView
  11. class BookDetailView(DetailView):
  12. model = Book
  13. context_object_name = 'book'
  14. template_name = 'books/book_detail.html'
  15. from django.views.generic.edit import CreateView
  16. class BookCreateView(CreateView):
  17. model = Book
  18. template_name = 'books/book_form.html'
  19. fields = ['title', 'author', 'publication_date']
  20. success_url = '/app3/books/' # 重定向至书本列表路由地址
  21. from django.urls import reverse_lazy
  22. from django.views.generic.edit import UpdateView
  23. class BookUpdateView(UpdateView):
  24. model = Book
  25. fields = ['title', 'author', 'publication_date']
  26. template_name = 'books/book_edit.html'
  27. success_url = reverse_lazy('book_list')
  28. from django.shortcuts import get_object_or_404
  29. from django.urls import reverse
  30. from django.views.generic.edit import DeleteView
  31. class BookDeleteView(DeleteView):
  32. model = Book
  33. template_name = 'books/book_delete.html'
  34. def get_object(self):
  35. id_ = self.kwargs.get("id")
  36. return get_object_or_404(Book, id=id_)
  37. def get_success_url(self):
  38. return reverse('book_list')

2,添加路由地址

Test/app3/urls.py

  1. from django.urls import path
  2. from . import views
  3. from .views import BookListView
  4. from .views import BookDetailView
  5. from .views import BookCreateView
  6. from .views import BookUpdateView
  7. from .views import BookDeleteView
  8. urlpatterns = [
  9. path('books/', BookListView.as_view(), name='book_list'),
  10. path('books/<int:pk>/', BookDetailView.as_view(), name='book_detail'),
  11. path('books/new/', BookCreateView.as_view(), name='book_new'),
  12. path('books/<int:pk>/edit/', BookUpdateView.as_view(), name='BookUpdateView'),
  13. path('books/delete/<int:id>/', BookDeleteView.as_view(), name='book_delete'),
  14. ]

3,添加html代码

Test/templates/books/book_delete.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <body>
  8. <form method="POST">
  9. {% csrf_token %}
  10. <p>你确定要删除这本书吗?</p>
  11. <button type="submit">确认删除</button>
  12. </form>
  13. </body>
  14. </html>

4,访问页面

 

声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号