Как я могу использовать нумерацию страниц, когда я использую форму для ввода даты, и отправка этой формы отправляет запрос на публикацию, а нумерация страниц принимает запрос на получение? - PullRequest
0 голосов
/ 15 октября 2019

Я использую Django для отображения веб-страницы. Я хочу отобразить детали файлов из базы данных. Этих файлов может быть любое количество. Я использую форму для ввода даты из файла HTML, который принимается функцией просмотра Django. Эта функция проверяет, имеет ли запрос тип POST, и возвращает данные между указанными датами. Теперь, когда я использую пагинацию для отображения этих страниц, нажатие следующей ничего не показывает, так как в этот раз запрос изменяется на GET. В моей функции просмотра django данные выбираются в виде списка. Данные каждого файла находятся в списке. Итак, все данные состоят из списков списков. Как я смогу отображать эти списки, используя нумерацию страниц, не отправляя запросы снова. Возможно ли это сделать?

Мои данные хранятся в базе данных по датам. Я получаю данные в заданном диапазоне. Этот диапазон происходит от HTML-страницы. Вот как я пытаюсь получить детали:

<div class="container">
  <form method="POST">
    {% csrf_token %}
    <input type="date" name="start_date">
    <input type="date" name="end_date">
    <button type="Submit">Get Details</button>
  </form>
</div>

Это код, который я использую в бэкэнде для обслуживания веб-страницы.

def data_range(request):
    if request.method == 'POST':
        form = Form(request.POST)
        try:
            if form.is_valid():
                start_date = form.data.get('start_date')
                end_date = form.data.get('end_date')
                page_data = get_page_details(start_date, end_date)

            else:

                current_date = datetime.datetime.now()
                start_date = end_date = current_date.strftime("%Y-%m-%d")
                page_data = get_page_details(start_date, end_date)

        except Exception:
            return render(request, 'UserInterface/no_data_fort.html', {'list_item_count': 0})
    else:
        return render(request, 'UserInterface/no_data_fort.html', {'list_item_count': 0})

    if page_data:
        # Calculating total files in fortnightly data
        list_item_count = len(page_data)

        # Adding Paginator or pagination
        paginator = Paginator(page_data, 1)
        page = request.GET.get('page')
        data = paginator.get_page(page)

        return render(request, 'UserInterface/fortnightly_range.html', {'page_data_list': data, 'list_item_count': list_item_count})
    else:
        return render(request, 'UserInterface/no_data_fort.html', {'list_item_count': 0})

page_data, которую я получаюсписок списков.

...