那就开始今天的教程吧
1.本节课继续来完成博客文章的详情页,把后台通过Ckeditor富文本编辑器编辑文章的内容展示到前端的页面上,核心要讲三个知识点:
第一个借着博客文章详情页面讲解【DetailView】,ListView是帮助来检索一组数据的,如果把整个的文章的内容都展示在网页上就会用到DetailView,它就是展示数据库中的一条数据的。
第二个会讲解DetailView中比较常用的一个扩展方法,查找一条数据,这条数据怎么来的必须要给出一个检索的方法。
第三个讲导入关系,或者叫引入include关系。
2.回到开发工具Pycharm上,从view层开始编写,起个名字叫blogdetailview,然后它要继承自新的通用视图类DetailView,记得要把它引入进来,因为它跟ListView是在一起的,通过这个包要引入两个类并且继承它,
如果不继承你的程序是不可能正确的执行出来的,然后写一个注释,这个叫文章详情视图,要理解【DetailView】就是展示数据库中的一条数据的,model用文章信息的【Bloginfo数据库表】,前端的模板起个名字叫blogdetail,
叫文章详情的页面,然后context_object_name,也就是说查询到这条记录返回到前端,在结果叫blog,要查询一篇文章就需要有一些参数传递过来,需要给它取唯一索引,取它的id,主键叫pk_url_kwarg,
路由层会定义一个参数的名字,比方叫blogid,通过这4个参数就可以找到一篇文章。
3.最基础的一种用法就是继承自DetailView这个类,然后定义4条属性,第一个就是使用的数据模型,第二个映射到模板层的时候使用哪一个模板,然后context data,在模板中要用到的文章变量的名字叫blog,
然后查询这条记录,唯一索引通过blogid传进来,如何来获取这个blogid,这个时候就需要配置【blog下面的url】,也加一个注释,然后blogdetail文章详情,参数跟view中用一样的就可以,这个blogid也是一个整数,
映射到数据库中,MySql中会有一个自增的组件就叫id。
4.在创建文章详情页面之前先回顾包含文章列表的几个页面,首先是index,然后是分类,标签,文档,它们的共同特性都有一个文章列表的展示,根据不同的请求,列表里面的内容有哪几个文章,这个是动态通过后台计算出来的,
但是它们都有一个list,这个list是在母版里边,然后子版通过继承的方式并没有指定list,也就是说现在的这个base.html母版,它只适用于文章列表的这种情况,它只有一个for循环,是写在母版里边的。