Результат поиска не совпадает с нумерацией страниц

В моем проекте django я использую Django Endless Pagination для пагинации и haystack +asticsearch для поиска. Когда я выполняю поиск определенного контента, метод запроса - POST, и результат корректен, но когда я пытаюсь разбить на страницы результаты поиска, следующий запрос принимается как GET, и результат поиска теряется, и весь контент повторяется.

Вот мой код:

views.py

@login_required(login_url="/")
@page_template('students/students_listing_block.html')
def students(request, template='students/students_listing.html', extra_context=None, *args, **kwargs):

    sqs = SearchQuerySet().models(Student)
    if request.POST:
        searchcontent = request.POST.get('content', None)
        if searchcontent:
            sqs = sqs.filter(content=searchcontent)
    students = sqs.order_by('-created_at')
    context = {
        'students': students,
    }
    if extra_context is not None:
        context.update(extra_context)
    return render_to_response(template, context,
           context_instance=RequestContext(request))

и мой шаблон

 {% load endless %}
 {% lazy_paginate students %}
 {% for student in students %}
      // Do the displaying here
 {% endfor %}
 {% show_more %}

1 ответ

Это запрос get, потому что стандартный метод запроса для поиска - GET. Я рекомендую изменить метод запроса для поиска на GET.

Или, если вы хотите продолжать использовать POST, вам нужно изменить метод запроса для каждой ссылки на страницу. Это хорошая библиотека для изменения метода запроса гиперссылки. https://github.com/rails/jquery-ujs

<a href="/asd" data-method="post">TEST</a>
Другие вопросы по тегам