在Django中,DetailView是一個用于顯示單個對象詳細信息的通用視圖。它是基于模型的視圖(Model View),通過提供一個模型類和一個可選的模板來工作。
DetailView擴展了SingleObjectMixin和TemplateResponseMixin。SingleObjectMixin用于獲取要顯示的對象,并將其存儲在self.object中。TemplateResponseMixin用于渲染模板并返回響應。
使用DetailView時,需要指定以下內容:
以下是一個使用DetailView的示例代碼:
from django.views.generic import DetailView
from .models import MyModel
class MyModelDetailView(DetailView):
model = MyModel
template_name = 'myapp/mymodel_detail.html'
context_object_name = 'mymodel'
在這個示例中,DetailView將使用MyModel模型類的對象,并將其存儲在self.object中。它將使用名為"myapp/mymodel_detail.html"的模板來渲染響應,并將對象存儲在上下文中的變量名為"mymodel"。