Если я ищу что-то, я получаю результат из сообщения, но когда я нажимаю следующую кнопку, он собирается получить функцию для получения данных

#here when i search button iam getting data i want from post but when i used pagination to go to the next page it is again visiting to get function pls help me to class CrawlMonitorOverall(View): ELEMENTS_PER_PAGE = 1

def get(self, request: HttpRequest) -> HttpResponse:
    print("get")
    print(request)
    form = SearchButtonForm()
    execution_queryset = CrawlRuleExecutionModel.objects.all().order_by('-id')
    context_data = self._get_execution_data(request, execution_queryset, form)
    return render(request, 'crawl_monitoring/overall_view.html', context_data)

def post(self, request: HttpRequest) -> HttpResponse:
    print("post")
    form = SearchButtonForm(request.POST)
    if form.is_valid():
        execution_queryset = self._get_execution_queryset(form)
        context_data = self._get_execution_data(request, execution_queryset, form)
        return render(request, 'crawl_monitoring/overall_view.html', context_data)

def _get_execution_queryset(self, form: SearchButtonForm) -> QueryType[CrawlRuleExecutionModel]:
    print(1)
    crawl_execution_name = form.cleaned_data["crawl_execution_name"]
    if crawl_execution_name:
        execution_queryset = CrawlRuleExecutionModel.objects.filter(
            crawl_rule__name__contains=crawl_execution_name).order_by('-id')
    else:
        execution_queryset = CrawlRuleExecutionModel.objects.all().order_by('-id')
    return execution_queryset

def _get_execution_data(self, request: HttpRequest, execution_queryset: QueryType[CrawlRuleExecutionModel], form) -> \
    Dict[str, Union[Paginator, Any]]:
    print(2)
    paginated_data = self._get_paginated_data(request, execution_queryset)
    execution_data = GenCrawlMonitorOverallContext().get_context(paginated_data)
    print(execution_data)
    context_data = {
        "execution_data": execution_data,
        "form": form,
        "paginator": paginated_data
    }
    return context_data

def _get_paginated_data(self, request, query_set: QueryType[CrawlRuleExecutionModel]) -> Page:
    print(3)
    paginator = Paginator(query_set, self.ELEMENTS_PER_PAGE)
    page_number = request.GET.get('page')
    paginated_data = paginator.get_page(page_number)
    return paginated_data
Вернуться на верх