1

在我的 django 项目中,我使用 Django Endless Pagination 进行分页,使用 haystack + elasticsearch 进行搜索。当我搜索特定内容时,请求方法是 POST 并且结果是正确的,但是当我尝试对搜索结果进行分页时,下一个请求被接收为 GET 并且搜索结果丢失并且整个内容被迭代。

这是我的代码:

视图.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 %}
4

1 回答 1

0

它是 get 请求,因为搜索的标准请求方法是 GET。我的建议是将搜索的请求方法更改为 GET。

或者,如果您想继续使用 POST,则需要更改每个页面链接的请求方法。这是一个很好的改变超链接请求方法的库。https://github.com/rails/jquery-ujs

<a href="/asd" data-method="post">TEST</a>
于 2015-07-15T07:29:08.200 回答