Django ajax пагинация (без использования JQuery), для обновления части страницы
Я использую Django 3.2
У меня есть ListView, производный CBV, который возвращает постраничный список объектов. Список объектов отображается в небольшой части главной (тяжелой) страницы, и я хочу обновлять только ту часть страницы, которая показывает список.
По причинам, в которые я не буду вдаваться, я не могу использовать jQuery (в основном, я использую onclick()
и если я определяю функцию обратного вызова onclick
внутри $().ready({});
, то функция не определяется к моменту вызова) - поэтому я должен определить функцию, используя POJS (Plain Old JS).
Вот фрагмент того, что у меня есть на данный момент:
Javascript func в базовом шаблоне:
function doIt(url, token, pagenum) {
fetch(`${url}?page=${pagenum}`, {
method: 'post',
headers: {
'Accept': 'application/json, text/html, */*',
'Content-Type': 'text/html',
'X-CSRFToken': token
},
//body: JSON.stringify({a: 7, str: 'Some string: &=&'})
}).then(res => res.text())
.then(res => console.log(res));
}
/path/to/pagination-template
# Test line
<li class="page-item"><a class="ajax-pager page-link" onclick="doIt('{{ request.build_absolute_uri }}{{ object.get_absolute_url }}', '{{csrf_token}}', {{ i }});" href="#"</a></li>
Когда я нажимаю на тег якоря, отправляется POST-запрос, и сервер (то есть Django) отвечает статусом 200 OK.
Однако в консоль ничего не записывается. Примечание: я уже проверил и убедился, что в списке, возвращаемом из представления, более 1 страницы элементов - так что проблема не в этом.
Что я делаю неправильно, и как я могу заставить ajax pagination правильно возвращать запрошенный фрагмент HTML с сервера?