作者:没有变成王子的青蛙 | 来源:互联网 | 2023-10-10 18:35
、现在已经实现了首页跳转到对应详情页的功能,现在需要实现在文章详情页有上一页,下一页的功能①、前端代码(直接取bootstrap官网中找--组件--分页--翻页)
、现在已经实现了首页跳转到对应详情页的功能,现在需要实现在文章详情页有上一页,下一页的功能
①、前端代码(直接取bootstrap官网中找--组件--分页--翻页)
前端可以改成以下:说明我们需要传递【privious_article】、【next_article】,这两个参数来自视图后台
nav aria-label="..."
ul
li a href="Article_detail/{{privious_article.article_id}}" 上一页:{{privious_article.title}}
/a /li
li a href="Article_deticle/{{next_article.article_id}}" 下一页:{{next_article.title}} /a /li /ul /nav
②、视图(view.py)函数改造
#视图函数,返回文章详情页,新增返回上一页、下一页的数据
def get_article_detial(requestss,article_ID):
articles=Article.objects.all();
curr_article=None;
privious_index=0;
next_index=0;
#我们需要知道当前文章的信息
for index,article in enum(articles):
#如果当前文章的index==0,说明么有上一篇文章
if inde==0:
privious_index=0;
next_index=index+1;
#如果当前文章的index等于列表长度,说明没有下一篇文章
elif index==len(articles)-1:
privious_index=index-1;
next_index=index;
else:
privious_index=index-1;
next_index=index+1;
if article.article_id==article_ID:
curr_article=article_ID-1;-------------------- 填入的id减去1,即可,验证通过
privious_article=articles[privious_index]
next_article=articles[next_index]
#break;
#session_list=articles.content.split('\n')
return render(requestss,'blog/detail.html',
{
'article':articles[curr_article],
#'session_list':session_list
'curr_article':curr_article,
'privious_article':privious_article,
'next_article':next_article
});
③、运行可看到结果
但是这个有一个问题,如果已经在第一篇文章,再点击上一篇,无响应
如果已经在最后一篇文章,再点击下一篇文章,无响应,原因是代码中这种情况下,next_index=当前文章的index,所以怎么点击都还是在当前这个index
这个后续可以改造的~~待续