Невозможно разбить на страницы object_list с помощью django-pagination

Я использую django-pagination, чтобы разбить список объектов в моем шаблоне. Я установил приложение, добавил его в свой проект и добавил pagination.middleware.PaginationMiddleware в моем settings.py файл. Но когда я пытаюсь использовать его в моем шаблоне, object_list не paginated, Вот мой код шаблона

{% extends "base.html" %}

    {% load pagination_tags %}
    {% autopaginate Questions %}

    {% block title %}
        Questions
    {% endblock %}


    {% block content %}
        <div id="contentDiv">

            {% for question in Questions %}
                <div style="padding:5px 20px 5px 30px;">

                    <p class='question'><span id='style2'>Q
                        <a href="{{ question.get_absolute_url }}" style="text-decoration:none; color:black;"> </span> {{ question.questiontext|safe }} </a> 
                        <span style= 'float:right;'><span style='font-size:12px; color:#099;'><a href="/question/type={{question.type}}" 
                        style='font-size:12px; color:#099;'>{{question.type}}</a></span> <span style='color:#99C; font-size:12px;'>Level: </span><span style='color:#099;font-size:12px;'>{{question.level}}</a></span></span>
                    </p>

                    <h2 class='trigger1' ><a href='#'>Answer</a></h2>
                    <div class='toggle_container' >
                        <div class='block' style='background-color:#fff; '>
                            <p class='ans'> {{ question.answer|safe }} </p>
                        </div>
                    </div>

                </div>
            {% endfor %}

            <div class="pagination" style="width:1000px; margin:auto; margin-bottom:20px;">
                {% paginate %}
            </div>

        </div>

{% endblock %}

Список объектов находится в context_variable называется Questions, Я делаю что-то неправильно?

3 ответа

Решение

После очень долгого времени я смог обнаружить ошибку, которая у меня была с django-pagination, У меня был канонический базовый шаблон, который я распространял на все страницы.

В документации написано, что мы требуем поставить {% paginate %} после {% autopaginate object_list %} но не где было написано про размещение {% autopaginate object_list %} сам.

я имел title а также body блоки в моем шаблоне, и я ставил {% autopaginate object_list %} чуть ниже {% extends "base.html" %} и в результате это не работало. Я обнаружил, что должен был поместить это утверждение в body block и теперь он работает абсолютно нормально.

Можете ли вы увидеть содержимое вашего div, если напишите "Привет, я хочу бургер" или что-нибудь еще там?

Вы уверены, что у вас достаточно вопросов для разбивки на страницы? Вы можете попробовать что-то вроде:

    {% autopaginate Questions 2 %}

чтобы убедиться, что вы будете разбивать на 2 вопроса / страницу.

Решено, как сказал Сачин выше: я просто переместил {% load pagination_tags %}{% autopaginate list_objs 10 %} внутри оператора {% block content %} (ранее он был вне его, поэтому разбиение на страницы было невидимым. Если ошибок нет, но теперь страницы - попробуйте поиграть с ним (движущийся блок нумерации страниц).

Другие вопросы по тегам