当前位置:   article > 正文

Django CreateView视图

Django CreateView视图

CreateView是Django提供的一个基于类的视图,用于处理创建新对象的操作。它可以帮助你轻松地创建一个表单页面,用户可以通过这个页面创建新的对象。

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']

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. urlpatterns = [
  7. path('books/', BookListView.as_view(), name='book_list'),
  8. path('books/<int:pk>/', BookDetailView.as_view(), name='book_detail'),
  9. path('books/new/', BookCreateView.as_view(), name='book_new'),
  10. ]

3,添加html代码

Test/templates/books/book_form.html

  1. <!-- 在templates/books/book_form.html中 -->
  2. <!DOCTYPE html>
  3. <html>
  4. <head>
  5. <title>New book</title>
  6. </head>
  7. <body>
  8. <h1>New book</h1>
  9. <form method="post">
  10. {% csrf_token %}
  11. {{ form.as_p }}
  12. <button type="submit">Save</button>
  13. </form>
  14. </body>
  15. </html>

 

4,访问页面

http://127.0.0.1:8000/app3/books/new/

这个错误表明Django在尝试重定向到新创建的对象的详情页面时找不到要去的URL。

实际上我们的数据已经成功保存下来了

解决保存后页面访问页面问题可参考: 

 Django 解决No URL to redirect to.-CSDN博客

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/725117
推荐阅读
相关标签
  

闽ICP备14008679号