📅  最后修改于: 2023-12-03 15:14:40.398000             🧑  作者: Mango
DetailView是Django框架中的一个类视图,用于显示单个模型实例的详细信息。DetailView基于模板系统实现,适用于需要展示单个实例详细信息的应用场景,如博客详情页、商品详情页等。
from django.views.generic import DetailView
from .models import MyModel
class MyModelDetailView(DetailView):
model = MyModel
template_name = 'myapp/mymodel_detail.html'
model
: 要显示的模型类。template_name
: 渲染模板的名称。from django.urls import path
from .views import MyModelDetailView
urlpatterns = [
path('mymodel/<int:pk>/', MyModelDetailView.as_view(), name='mymodel_detail'),
]
{% extends 'base.html' %}
{% block content %}
<h1>{{ object.title }}</h1>
<p>{{ object.content }}</p>
{% endblock %}
object
: 当前实例的名字,可以在模板中获取。model
: 要显示的模型类。template_name
: 渲染模板的名称。context_object_name
: 上下文中的实例变量名,默认为object
。queryset
: 过滤实例的查询集。slug_field
: 通过URL查找实例的字段名。slug_url_kwarg
: URL中用于查找实例的关键字参数名。pk_url_kwarg
: URL中用于查找实例的主键参数名。extra_context
: 传递给模板上下文的其他变量。get_object()
: 获取要呈现的模型实例。get_queryset()
: 获取用于呈现实例的查询集。