Django пагинатор + Ajax JS Jquery + Сортировка

Не могу синхронизировать сортировку и пагинатор(django + ajax). То есть я вообще не могу понять, стоит ли генерировать новый пагинатор при ajax запросе или же можно как-то обойти это и при одном пагинаторе выводить разный контент в зависимости от сортировки. Я пришёл к выводу что нужно при нажатии определенной сортировки, у нас запускается ajax запрос, который удаляет класс в номере пагинатора и ставит свой определенный класс, допустим sort2 и потом номера пагинатора будут открывать уже отсортированный товар, но реализовать я это не могу как бы долго не пытался. Возможно это вообще невозможно? Я пробовал и генерировать новый пагинатор при новом ajax запросе с уже созданным классом, но это тоже не помогло.

Вот JSON файл сортированных по возрастанию и убыванию товаров

if request.method == 'POST':
        page_n = request.POST.get('page_n', None) 
        in_ascending_order = list(paginatorr.page(page_n).object_list.values('id', 'title', 'price', 'img'))
        in_descending_order = list(paginatorr2.page(page_n).object_list.values('id', 'title', 'price', 'img'))
        return JsonResponse({"in_ascending_order": in_ascending_order, "in_descending_order": in_descending_order})

Вот генерирование номеров пагинатора с классом sort1, то есть будут выбраны только товары относящиеся к сортированному по возрастанию списку

{% for i in page_range %}

                            <li class="page-item active" aria-current="page"></li>
                            <a href="{{i}}" class="page-link sort1" id="by_sort">{{i}}</a>
                            </li>

                            {% endfor %}
<script>


    $(document).ready(function () { 

        setTimeout(function () { 

            $('#click-block-vozr').click();
        }); 
    });



    var elem = document.getElementsByClassName('sort1')
    $(elem).click(function (event) {
        event.preventDefault();
        
       
        


        var page_n = $(this).attr('href');
        // ajax
        $.ajax({
            type: "POST",
            url: "{% url 'by_subcategory' current_category.pk current_subcategory.pk %}", // name of url
            data: {
                page_n: page_n, //page_number
                csrfmiddlewaretoken: '{{ csrf_token }}',
            },
            success: function (resp) {
                //loop
                $('#posts').html('')
                $.each(resp.in_ascending_order, function (i, val) {

                    //apending posts
                    $('#posts').append('<div class="col-12 col-sm-6 col-md-6 col-lg-4 p-1">' +
                        '<div class="card h-100">' + '<img class="card-img-top" alt="..." src="{% static "" %}' + val.img + '">' +
                        '<div class="card-body text-end">' +
                        '<h5 class="card-text someprice">' +
                        val.price +
                        ' Т/шт' +
                        '</h5>' +
                        '</div>' +

                        '<div class="card-body border-top h-100 productname">' +
                        '<p class="card-text text-white bg-none sometitle">' + val.title + '</p>'
                        + '</div>'
                        + '</div>'
                        + '</div>')
              
                })
                
              
                

            },

            error: function () { }
        }); 

    });


    var elem2 = document.getElementsByClassName('sort2')
    $(elem2).click(function (event) {
        event.preventDefault();
       
        var page_n = $(this).attr('href');
        // ajax
        $.ajax({
            type: "POST",
            url: "{% url 'by_subcategory' current_category.pk current_subcategory.pk %}", // name of url
            data: {
                page_n: page_n, //page_number
                csrfmiddlewaretoken: '{{ csrf_token }}',
            },
            success: function (resp) {
                //loop
                $('#posts').html('')
                $.each(resp.in_descending_order, function (i, val) {

                    //apending posts
                    $('#posts').append('<div class="col-12 col-sm-6 col-md-6 col-lg-4 p-1">' +
                        '<div class="card h-100">' + '<img class="card-img-top" alt="..." src="{% static "" %}' + val.img + '">' +
                        '<div class="card-body text-end">' +
                        '<h5 class="card-text someprice">' +
                        val.price +
                        ' Т/шт' +
                        '</h5>' +
                        '</div>' +

                        '<div class="card-body border-top h-100 productname">' +
                        '<p class="card-text text-white bg-none sometitle">' + val.title + '</p>'
                        + '</div>'
                        + '</div>'
                        + '</div>')
                    



                });
               

            },
            error: function () { }
        }); // 

    });
</script>

Ответы (0 шт):