📜  detailview - Python (1)

📅  最后修改于: 2023-12-03 15:14:40.398000             🧑  作者: Mango

DetailView - Python

概述

DetailView是Django框架中的一个类视图,用于显示单个模型实例的详细信息。DetailView基于模板系统实现,适用于需要展示单个实例详细信息的应用场景,如博客详情页、商品详情页等。

使用
定义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: 渲染模板的名称。
URL配置
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(): 获取用于呈现实例的查询集。