那就开始今天的教程吧
1.检索关键词之后就会得到检索的结果,这个结果放在page.object_List,【object】是检索结果的内容,遍历它就能够拿到检索的结果,刚才定义的text来一个循环,for检索结果叫result,就result in page.object_List,
就可以拿到检索的结果,这个结果也是个对象,它里边会关联着文章,加一个empty,如果没有拿到检索结果的时候提示暂无搜索内容,加样式,div框class等于no_blog,这些比较常用的样式直接给它加上。
2.开始看上面循环一条一条的如何来展示,复制【article】标签,评论的不要,在search的结果页面中粘贴,需要把搜索结果关联到里边,要先展示文章的标题,但是这个标题里边是包含检索内容的,如何来获取到检索的结果,
分词器分完了之后得知道哪一个词是要的关键字,用到【highlight】自定义标签,这个标签是Haystack定义好的,引入出来之后就可以使用这个标签。
3.先写标签的名字【highlight】,结果在result里边,通过result.object拿到一条搜索结果所对应的文章的对象信息,就是数据库里边的一条记录,然后.title 加with query 让它格式化,现在这个页面里没有blog这个对象,
如果你这样写它会报错的,blog这个对象是result.object,把它复制替换掉,就是说链接不变,但是链接里边上送的参数是要变化的,所有的原来blog.都要改成result.object.
4.这是变量取值的过程,根据每一个页面每一个模板,所用到的上下游环境变量不一样,【body with query】会有一定的截取和格式化,然后用一个段落套下,这样就是搜索结果的内容,下一步在base.html中增加搜索框,
找Bootstrap的文档,代码复制下来放在base里边,找到banner,在它们两个中间加上。
5.这个form需要有连接,是【Haystack】来解析,method的应该是get方法,而不是post,然后它是以传参的方式传递上去的,这个时候action发送的链接是haystack的search,这个是固定的写法,用haystack的时候,