Как разбить результат elasticsearch-dsl на страницы на основе введенного пользователем значения - PullRequest
0 голосов
/ 12 июля 2020

Я хочу разбить на страницы некоторые результаты, полученные с помощью elasticsearch-dsl (версия 7.8.0), точно так же, как переполнение стека делает с количеством вопросов на странице в его списке вопросов (см. { ссылка } . Итак, я ожидаю, что пользователь введет количество «вопросов» на странице, которое он хочет.

Если это важно, я также использую djangoelasticsearch-dsl.

Вот мой documents.py

from django_elasticsearch_dsl import Document
from django_elasticsearch_dsl.registries import registry
from polls.models import Question

@registry.register_document
class QuestionDocument(Document):
    class Index:
        name = 'questions'
        settings = {
            'number_of_shards: 1,
            'number_of_replicas: 0,
        }

    class Django:
        model = Question
        fields = ['question_text', 'pub_date']

Вот мой views.py

from django.shortcuts import render
# search is the name of the app
from search.documents import QuestionDocument

def search(request):
    q = request.GET.get('q', None)

    if q:
        questions = QuestionDocument.search().query("match", question_text=q)
    else:
        questions = ''

    return render(request, 'search/search.html', {'questions': questions})

И мой search. html шаблон:

<form method="get">
    <input id="q" name="q" type="text" placeholder="your search...">
</form>

{% for question in questions %}
   {{ question.question_text }}
   {{ question.pub_date }}
   <br>
{% endfor %}

Пожалуйста, как мне продолжить?

...