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 = None previous_index = 0 next_index = 0 previous_article = None next_article = None #对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串), # enumerate将其组成一个索引序列,利用它可以同时获得索引和值 for index,article in enumerate(all_article): if index == 0: previous_index = 0 next_index = index +1 elif index == len(all_article) - 1: previous_index = index-1 next_index = index else: previous_index = index -1 next_index = index+1 #通过id判断当前记录; if article.article_id == article_id: curr_article = article previous_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 } )