Невозможно разбить на страницы 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 %} (ранее он был вне его, поэтому разбиение на страницы было невидимым. Если ошибок нет, но теперь страницы - попробуйте поиграть с ним (движущийся блок нумерации страниц).