Нумерация страниц с ajax и django - PullRequest
0 голосов
/ 17 марта 2020

Вот код для views.py - это метод, который получает запрос «get», а затем получает данные объектов после фильтрации в формате json.

my views.py

@login_required(login_url='login')
def filter(request, page=1):
    """Displays the results of the search for substitute products
    """
    global data
    # First logic section   
    value = request.GET.get('value')
    """ logic of seconde user search (get constum search with 3 fields ( grade, categorie, rating))
    """
    conditions = dict()

    for filter_key, form_key in (('grade',  'grade'), ('categorie', 'categorie'), ('rating__rating', 'rating')):
        value = request.GET.get(form_key, None)
        if value:
            conditions[filter_key] = value

    print(conditions)

    best_product = Product.objects.filter(**conditions)
    serialize_product = productSerializer(best_product, many=True) 
    print(type(serialize_product.data))


    context = { 
        'best_product': serialize_product.data,
        }
    print((context))
    return JsonResponse(context)

Вот код запроса, который извлекает введенные данные (класс, категория, рейтинг), а затем отправляет их в представление (фильтр) после обработки. он получает ответ, затем отображает все объекты (в «var html»). Моя проблема в том, что я хочу отображать только 15 объектов одновременно (нумерация страниц с 15 объектами). мои сценарии. js

$('#btn-filter').on('click', function (e) {
    e.preventDefault();
    var grade = $('#grade').val();
    var categorie = $('#categorie').val();
    var rating = $('#rating').val();
    $('#row-after').children().remove();
    // alert( 'rating: ' + rating + ' grade: ' + grade+ ' categorie: ' + categorie );

    $.ajax({
        url: "/filter",
        type: 'get',

        data: {
            csrfmiddlewaretoken: '{{ csrf_token }}',

            'grade': grade,
            'categorie': categorie,
            'rating': rating,


        },
        success: function (response) {
            var html = '';

            $.each(response['best_product'], function (index, item) {
                html += ' <tr>' + '<td>' + item.id + '</td>' + '<td>' + item.name + '</td>' + '<td>' + item.grade + '</td>' + '</tr>'; 

            });

            $('.row-after').children().remove();      

                $('.row-after').append(html );

        },
        error: function (data) {
            alert("ajax call failed!");
        }
    });




});


Пожалуйста, помогите мне найти решение для подкачки объектов с запросами ajax. Я могу отправить данные из представления filters.py, но для разбивки на страницы у меня нет много решений, спасибо за помощь. мой шаблонный фильтр

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...