使用Django后端的cordova android分页出现问题

2024-05-17 02:34:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试在phonegap android应用程序中实现分页。 到这条线为止还可以

paginator = Paginator(book1, 2)

但这条线给我带来了麻烦。你知道吗

page = int(request.GET.get('page', '1'))

我的视图.py文件是

def get_all_book(request):
    if request.method=="GET":
        bk=Book.objects.all().count()
        if bk==0:
            html = render_to_string('book/nobook.html')
            return HttpResponse(html,mimetype="application/text")
        else:
            book1=Book.objects.all()
            paginator = Paginator(book1, 2)
            page = int(request.GET.get('page', '1'))
            try:
                page_obj = paginator.page(page_number)
                print page_obj
                books = paginator.page(page)
            except PageNotAnInteger:

                books = paginator.page(1)
            except EmptyPage:

                books = paginator.page(paginator.num_pages)

            return render(request, "crave/book/book.html", {'books':books})

在html文件中我正在使用

<div class="pagination">
    <span class="step-links">
        {% if books.has_previous %}
            <a href="?page={{ books.previous_page_number }}">previous</a>
        {% endif %}

        <span class="current">
            Page {{ books.number }} of {{ books.paginator.num_pages }}.
        </span>

        {% if books.has_next %}
            <a href="?page={{ books.next_page_number }}">next</a>
        {% endif %}
    </span>
</div>

但当我从移动应用程序中点击下一页时,它并没有传递下一个要查看的页码。i、 e页码没有自动递增。 这条线有问题吗

<a href="?page={{ books.next_page_number }}">next</a>

请帮我拿这个image


Tags: numbergetifrequesthtmlpageallbooks
1条回答
网友
1楼 · 发布于 2024-05-17 02:34:40
A quiick review of the code reveals mistakes, check again, page_number should be page, most of your checks can be refactored.

from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger

def get_all_book(request):
    bk=Book.objects.all()
    if bk.count():
        paginator = Paginator(bk, 2)
        page = request.GET.get('page')
        try:
            books = paginator.page(page)
        except PageNotAnInteger:
            books = paginator.page(1)
        except EmptyPage:
            books = paginator.page(paginator.num_pages)
        return render(request, "crave/book/book.html", {'books':books})
    else:
        html = render_to_string('book/nobook.html')
        return HttpResponse(html,mimetype="application/text")

相关问题 更多 >