Я не понимаю, в чем заключается ошибка. django ajax pagination
Я пытаюсь сделать пагинацию в django с помощью ajax, но есть проблема. Проблема в том, что когда я кликаю на страницу, элементы на этой странице убираются, но другие не добавляются. Изначально все нормально, я начинаю кликать по страницам и все содержимое исчезает. Я не понимаю почему (я не силен в js), может ли кто-нибудь помочь.
Код views.py
class ReviewsView(ListView):
model = Review
template_name = 'reviews.html'
def get_context_data(self, **kwargs):
context = super().get_context_data(**kwargs)
context['reviews'] = Review.objects.all()
paginator = Paginator(context['reviews'], 1)
page = self.request.GET.get('page')
try:
context['reviews'] = paginator.page(page)
except PageNotAnInteger:
context['reviews'] = paginator.page(1)
except EmptyPage:
context['reviews'] = paginator.page(paginator.num_pages)
return context
Код reviews.html
<div id="reviews" class="row md-3">
{% for review in reviews %}
<div class="col-md-6">
<div class="reviews-card reviews__link">
<div class="reviews-card__box">
<div class="reviews-card__author">
<div class="reviews-card__preview">
<picture>
<img class="reviews-card__img" src="{{ review.photo.url }}"
alt="{{ review.name }} {{ review.surname }}"></picture>
</div>
<div class="reviews-card__name">{{ review.name }}<br>{{ review.surname }}</div>
</div>
<p class="reviews-card__text">{{ review.content }}</p></div>
</div>
</div>
{% endfor %}
</div>
{% if not reviews.paginator.page_range|length == 1 %}
<div class="pagination__wrapper">
<div id="pagination" class="pagination">
{% for page in reviews.paginator.page_range %}
{% if reviews.number == page %}
<span class="active">{{ page }}</span>
{% elif page > reviews.number|add:-2 and page < reviews.number|add:2 %}
<a class="page" href="{{ request.path }}?page={{ page }}">{{ page }}</a>
{% endif %}
{% endfor %}
{% if reviews.has_next %}
<a class="page" href="{{ request.path }}?page={{ reviews.next_page_number }}">{{ page }}
>>
</a>
{% endif %}
</div>
</div>
{% endif %}
Code js
{% block js %}
<script type="text/javascript">
function ajaxPagination() {
$('#pagination a.page').each((index, el) => {
$(el).click((e) => {
e.preventDefault();
let page_url = $(el).attr('href')
console.log(page_url)
$.ajax({
url: page_url,
type: 'GET',
success: (data) => {
$('#reviews').empty()
$('#reviews').append($(data).filter('#reviews').html())
$('#pagination').empty()
$('#pagination').append($(data).find('#pagination').html())
}
})
})
})
}
$(document).ready(function () {
ajaxPagination();
})
$(document).ajaxStop(function () {
ajaxPagination();
})
</script>
{% endblock %}