添加了上一篇和下一篇文章功能
我不确定,上一篇指的是该文章在所有分类中的上一篇文章,还是在该文章所在分类的上一篇文章;关于下一篇同理。
于是我就按后者设计。
参考链接http://yshblog.com/blog/12
在views.py
中的detail
方法中,加入如下代码:
1 | ... |
其中__gt
指的是大于,__lt
是小于。
那么在detail.html
中就可以使用了:
1 | ... |
if
判断的是在没有上一篇文章,或者没有下一篇文章,即开头和结尾的情况。
你看吧,这里就用到了
bootstrap
的分页的样式。看起来挺不错的。
还有这个prev.title|title_slice
,后面的过滤条件title_slice
,是为了截取标题。如果标题太长,这个上一篇和下一篇可能会很难看。
没有采用系统默认的slice
,系统默认的slice
,不会在截取后的标题后面加上...
,似乎就不知道你的标题是被截取过了。
当然,自定义的截取也并非多么完美,比如标题可能是中文和英文结合,而slice
切片是一个中文算一个字符那样截取的,中文明显比英文要占的宽。
所以如果截取后的标题,英文多的话,就会显的很短;而中文多的话,就会显的很长。
在上一篇和下一篇显示的地方,并没有指定宽度;而首页的右边,文章列表那里,就显示出来问题了。
自定义filter
我就是在原来post_tags.py
文件里面,追加了自定义的filter- title-slice
。英文不好,参考这个Django翻译的中文站。
1 | ... |
然后就可以在detail.html
页面中使用了,这个过滤器有默认的参数值,如果需要指定截取的字符数,可以使用text|title_slice:'20'
PS:快要元旦了,要回家一两天,可能暂时不更新。