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>

 

查看結果,調試正常,加油↖(^ω^)↗

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM