在基于类的常规视图中使用<int:pk>
的主要目的是传递一个整数类型的参数作为主键值,用于查找和操作数据库中的特定记录。
具体步骤如下:
<int:pk>
的URL模式与对应的视图函数关联起来。例如:from django.urls import path
from . import views
urlpatterns = [
path('example/<int:pk>/', views.ExampleDetailView.as_view(), name='example-detail'),
]
DetailView
作为基类:from django.views.generic import DetailView
from .models import ExampleModel
class ExampleDetailView(DetailView):
model = ExampleModel
template_name = 'example_detail.html' # 指定用于渲染模板的名称
context_object_name = 'example' # 指定用于模板上下文中的变量名,默认为object
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
# 添加额外的上下文数据,供模板使用
return context
在这个示例中,model
属性指定要使用的模型类,template_name
属性指定要使用的模板,context_object_name
属性指定在模板上下文中使用的变量名。
example_detail.html
的模板文件,用于渲染视图中的数据。例如:<h1>{{ example.title }}</h1>
<p>{{ example.description }}</p>
在这个示例中,我们假设ExampleModel
具有title
和description
字段。
这样,在浏览器中访问/example/1/
,就会调用ExampleDetailView
视图类,并将主键值为1的记录传递给该视图。视图将会根据指定的模型类和模板进行数据库查询和数据渲染,并将渲染结果发送给浏览器显示。
腾讯云相关产品推荐:云服务器(ECS)- 产品介绍
领取专属 10元无门槛券
手把手带您无忧上云