通常在列表中只会显示一些标题等信息,然后通过点击标题到达一个文章详情页面,显示更全面的数据信息
接下来,我们就要创建详情视图
创建详情视图
创建detail视图
def detail(request):
pass
配置url规则
当点击列表页面链接时,链接上会带有当前信息在数据库的id,可以根据这个id来查询数据
http://127.0.0.1:8000/polls/1/
要获得id值,需要在url规则添加
path('<int:question_id>/', views.detail, name='detail'),
最终的urls文件
urlpatterns = [
path("", views.index, name="index"),
path("add", views.add_question, name="add"),
path('<int:question_id>/', views.detail, name='detail'),
]
添加detail模版
在polls/templates/polls
目录下添加detail.html文件
并在文件中添加如下内容
<h3>{{ question.question_text }}</h3>
<p>发布日期: {{ question.pub_date }}</p>
完成detail视图
完成模版之后,我们就可以在视图中渲染模版了
def detail(request, question_id):
question = Question.objects.get(pk=question_id)
context = {
"question": question
}
return render(request, "polls/detail.html", context)
讨论区