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 с сервера?

Вернуться на верх