Django----将列表按照一定的顺序展示

1、要求:按照文章的时间降序排列,并且只展示前5篇文章
2、需要用到:list的切片知识

 

###改造view.py中的视图方法

#列表页
def get_article(request):
    article_list = Article.objects.all();
    #按照文章时间排序(并且是降序排列)
    order_3_list=Article.objects.order_by('-articel_date')[:3]------------->使用order_by('字段名称'),order_by('-字段名称')【前面加一个减号,表示降序】
    page=request.GET.get('page');
    if page:
        page=int(page);


    else:
        page=1;
    print('PAGE 参数为:',page);

    #实例化一个分页组件,第一个参数是需要被分页的列表,第二个参数是每一个的item个数
    paginator=Paginator(article_list,2);
    #page方法,传入一个参数,表示第几页的列表,这边传入的page,是你在地址中写的参数
    page_article_list=paginator.page(page);
    page_num=paginator.num_pages
    print('page_num:',page_num);
    #判断是否存在下一页
    if page_article_list.has_next():
        next_page=page+1;

    else:
        next_page=page;
    if page_article_list.has_previous():
        previous_page=page-1;
    else:
        previous_page=page;

    return render(request,'index.html',{
        'article_list':page_article_list,
        "order_3_list":order_3_list,--------------->把这个东西传回前端
        'page_num':range(1,page_num+1),
        'curr_page':page,
        'next_page':next_page,
        'previous_page':previous_page
    })

 

 

 

#前端改造

    <div class="col-md-3" role="complementary">
        <div><h2>持续更新中......</h2>
            {% for article in order_3_list  %}

            <h4><a href="get_detail/{{ article.article_id }}">{{article.article_title}}</a></h4>
            {% endfor %}

        </div>

 

查看结果,调试正常,加油↖(^ω^)↗

 

转载于:https://www.cnblogs.com/shenyexiaoqingxin/p/10654037.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值