Джанго основная проблема нумерации страниц - PullRequest
2 голосов
/ 04 июня 2010

У меня есть приложение для микроблогов, и я пытаюсь разбить записи на страницы, чтобы показывать, например, только 10 на страницу. хотя я следовал этому уроку, похоже, что моя нумерация страниц не работает.

функция листинга выглядит так:

def listing(request):
    blog_list = Blog.objects.all()
    paginator = Paginator(blog_list, 10)
    try:
        page = int(request.GET.get('page','1'))
    except ValueError:
        page = 1
    try:
        posts = paginator.page(page)
    except (EmptyPage, InvalidPage):
        posts = paginator.page(paginator.num_pages)

    return render_to_response('profile/publicProfile.html', {"posts": posts})

и в моем шаблоне:

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

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

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

спасибо!

Ответы [ 2 ]

6 голосов
/ 04 июня 2010

Вы можете использовать django-pagination , что позволяет реализовать разбиение на страницы без написания одной строки кода Python, вы только передаете список всех объектов в шаблон (например, blog_list = Blog.objects.all() в вашем случае), и затем используйте три тега в вашем шаблоне:

 {% load pagination_tags %}
 {% autopaginate blog_list 10 %}
 {% paginate %}
5 голосов
/ 04 июня 2010

Возвращает общий вид object_list , который принимает аргумент paginate_by вместо возврата render_to_response

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...