Django的DetailView是一个用于显示单个对象详情的视图。下面是一个使用DetailView来显示单个书籍详情的例子。
Test/app3/views.py
- from django.shortcuts import render
-
- # Create your views here.
- from django.views.generic import ListView
- from .models import Book
-
- 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'

Test/app3/urls.py
- from django.urls import path
- from . import views
-
- from .views import BookListView
- from .views import BookDetailView
-
- urlpatterns = [
- path('books/', BookListView.as_view(), name='book_list'),
- path('books/
/' , BookDetailView.as_view(), name='book_detail'), - ]
-

Test/templates/books/book_detail.html
- html>
- <html>
- <head>
- <title>{{ book.title }}title>
- head>
- <body>
- <h1>{{ book.title }}h1>
- <p>Author: {{ book.author }}p>
- <p>Publication date: {{ book.publication_date }}p>
- body>
- html>

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


