在我的django项目中,我使用Django Endless Pagination进行分页,并使用haystack + elasticsearch进行搜索。当我搜索特定内容时,请求方法为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 %}
最佳答案
因为搜索的标准请求方法是GET,所以它是get请求。我的建议是将搜索的请求方法更改为GET。
或者,如果您想继续使用POST,则需要更改每个页面链接的请求方法。这是一个更改超链接请求方法的好库。 https://github.com/rails/jquery-ujs
<a href="/asd" data-method="post">TEST</a>
关于django - 搜索结果因分页而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31422818/