Суть такая. Есть API, к которому я обращаюсь из Django посредством либы requests. Для запроса данных есть форма. Данные от API прилетают в JSON'е. Для того, чтобы отображать данные на странице использую встроенную в Django пагинацию. Но корректно отображается только первая страница. Если перейти на вторую - она пустая. Но если снова нажать кнопку submit в форме, то данные отображаются, и отображаются верные с учетом пагинации.
Собственно вопрос, как работать с такими данными с пагинацией?
UPD:
utils.pyclass GetRecords:
...
def get_history(...):
response = requests.post(url=self.history_url,
cookies=self.cookies,
data=payload,
headers=self.headers)
return response
views.py
def index(request):
...
if request.method == 'POST':
if form.is_valid:
...
records = GetRecords().get_history(...).json()
paginator = Paginator(records['data'], 20)
page_number = request.GET.get('page')
page_obj = paginator.get_page(page_number)
context['page_obj'] = page_obj
return render(request,
template_name='index.html',
context=context)
index.html
{% block content %}
<ul>
{% for data in page_obj %}
<li>{{ data }}</li>
{% endfor %}
</ul>
<div class="pagination">
<span class="step-links">
{% if page_obj.has_previous %}
<a href="?page=1">« Первая</a>
<a href="?page={{ page_obj.previous_page_number }}">Предыдущая</a>
{% endif %}
<span class="current">
Страница {{ page_obj.number }} из {{ page_obj.paginator.num_pages }}
</span>
{% if page_obj.has_next %}
<a href="?page={{ page_obj.next_page_number }}">Следующая</a>
<a href="?page={{ page_obj.paginator.num_pages }}">Последняя »</a>
{% endif %}
</span>
</div>
{% endblock %}