Как создать пользовательский пагинатор в django
Я пытаюсь использовать встроенный в django пагинатор, но он не работает, потому что я не использую объект хранения базы данных Я создаю сайт с другими api...
вот мой код:
def index(request):
response = requests.get("https://www.hetzner.com/a_hz_serverboerse/live_data.json")
data = response.json()
p = Paginator(data, 3)
pn = request.GET.get('page')
print(pn, p, data)
page_obj = p.get_page(pn)
context = {
'data': data,
'page_obj': page_obj
}
return render(request, 'index.html', context)
нужно ли мне создавать пользовательский пагинатор, если да, то как? или есть ли решение?
https://docs.djangoproject.com/en/4.0/topics/pagination/#example. Вы можете передать пагинатору любой список.
Проблема заключалась в том, что ответ от API возвращал не список, а объект, где список находился под ключом сервера. Решение:
def index(request):
response = requests.get("https://www.hetzner.com/a_hz_serverboerse/live_data.json")
data = response.json()['server']
p = Paginator(data, 3)
pn = request.GET.get('page')
print(pn, p, data)
page_obj = p.get_page(pn)
context = {
'data': data,
'page_obj': page_obj
}
return render(request, 'index.html', context)