簡體   English   中英

下一頁按鈕無法正常工作

[英]Next page button not working same page is reloading

我的數據庫中有6個帖子,我希望每頁顯示3個帖子。 一切正常,沒有任何錯誤,但是當我單擊“下一頁”鏈接時,相同的帖子正在重新加載。 這里的步驟,

http://127.0.0.1:8000/blog/

正在成功加載,並且頁面中有3個帖子。 另外,按預期,“下一頁”鏈接也位於頁面底部。

當我單擊下一頁時,URL變為:

http://127.0.0.1:8000/blog/?page=2

但是正如我所說,首頁的帖子正在重新加載。

url.py:

path('',views.getPosts,name="bloghome"),
path('/<int:selected_page>/',views.getPosts,name="bloghome"),

關於分頁的view.py函數:

def getPosts(request,selected_page=1):
    posts = Posts.objects.all()
    pages = Paginator(posts,3) #Show 3 post per page
    try:
        returned_page = pages.get_page(selected_page)
    except EmptyPage:
        returned_page = pages.page(pages.num_pages)   
    return render(request,'blog.html',{'page':returned_page,
                                       'posts':returned_page.object_list
                                        })

發布列表頁面的模板:

{% extends 'blog_mainpage_assets.html' %}
{%load static%}

    {% block document_body%}
        <div class="container" style="margin-top:40px;">
                {%for post in posts%}
                <div class="post">
                        <div class="baslikveyazi">
                            <div class="baslik_2">
                                <h2><a href="{% url 'post_detail' post.slug %}">{{post.post_title}}</a></h2>
                            </div>
                            <div class="yazi_2">
                                <div style="word-wrap: break-word;"><p style="font-size:20px;line-height:2;">{{post.post_body|truncatechars:100}}</p></div>
                            </div>
                        </div>
                </div>

                {%endfor%}

                {% if page.has_previous %} 
                <a href="{% url 'bloghome' %}?page={{page.previous_page_number}}">Back</a>
                {% endif %}                
                {% if page.has_next %}                
                <a href="{% url 'bloghome' %}?page={{page.next_page_number}}">Next</a>
                {% endif %}


        </div>
    {% endblock document_body%}

您的第二個URL格式為/blog/<page>/但這不是您在鏈接中構造的URL。 您的鏈接類似於/blog/?page=2 查詢參數( ?page=2 )與URL路徑( /2/ )完全不同,因此視圖中的selected_page絕不會是1以外的任何值。

我將從您的URL配置中刪除第二個URL,然后在視圖中檢查查詢參數:

def getPosts(request):
    posts = Posts.objects.all()
    pages = Paginator(posts, 3) #Show 3 post per page
    selected_page = request.GET.get('page', 1)
    try:
        returned_page = pages.get_page(selected_page)
    except EmptyPage:
        returned_page = pages.page(pages.num_pages) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM