展示人物列表

  • 提示 : 点击书籍列表时, 使用所点击书籍的索引去取人物列表信息

实现步骤

  • 1.创建视图
  • 2.创建模板
  • 3.配置URLconf

1.创建视图

  • 查询数据库数据
  • 构造上下文
  • 传递上下文到模板

      # 定义视图:提供人物列表信息
      def peopleList(request,bookid):
    
          # 查询数据库人物列表数据
          book = BookInfo.objects.get(id=bookid)
          # 外键查询 : 人物所属于哪本书
          peopleInfos = book.peopleinfo_set.all()
    
          # 构造上下文
          context = {'peoplelist':peopleInfos}
          # 数据交给模板处理,处理完成后通过视图响应给客户端
          return render(request, 'Book/peoplelist.html', context)
    

2.创建模板

  • booklist.html模板改造 : 书名使用<a>标记
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>书籍列表信息</title>
</head>
<body>

<ul>
    {% for book in booklist %}
        <li><a href="/{{ book.id }}/">{{ book.name }}</a></li>
    {% endfor %}
</ul>

</body>
</html>
  • peoplelist.html模板
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>人物列表信息</title>
</head>
<body>

<ul>
    {% for people in peoplelist %}
        <li>{{ people.name }}</li>
    {% endfor %}
</ul>

</body>
</html>

3.配置URLconf

  • 进入应用中的urls.py文件

      urlpatterns = [
          # 应用中定义URLconf,调用对应的index视图/函数
          url(r'^$', views.index),
    
          # 匹配书籍列表信息的URL,调用对应的bookList视图/函数
          url(r'^booklist/$', views.bookList),
    
          # 匹配书籍列表信息的URL,调用对应的peopleList视图/函数
          # 索引分组是为了方便取出作为所点击书籍索引,传递给peopleList函数的第二个参数
          url(r'^(\d+)/$', views.peopleList)
      ]
    

4. 对照需求验收成果