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 に答える