1、要求显示效果
2、前端html内容
<div><nav aria-label="..."><ul class="pager"><li><a href="/blog/detail/{{ previous_article.article_id }}">上一篇:{{ previous_article.title }}</a></li><li><a href="/blog/detail/{{ next_article.article_id }}">下一篇:{{ next_article.title }}</a></li></ul> </nav> </div>
3、具体实现逻辑:
#根据id获取博客详细信息; def get_detail_page(request,article_id):all_article = Article.objects.all()curr_article = Noneprevious_index = 0next_index = 0previous_article = Nonenext_article = None#对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),# enumerate将其组成一个索引序列,利用它可以同时获得索引和值for index,article in enumerate(all_article):if index == 0:previous_index = 0next_index = index +1elif index == len(all_article) - 1:previous_index = index-1next_index = indexelse:previous_index = index -1next_index = index+1#通过id判断当前记录;if article.article_id == article_id:curr_article = articleprevious_article = all_article[previous_index]next_article = all_article[next_index]break#通过换行符拆分成记录列表;#影响的结果,需传递json参数;section_list = curr_article.content.split('\n')return render(request,'blog/detail.html',{'curr_article':curr_article,'section_list':section_list,'previous_article': previous_article,'next_article': next_article})