Если я ищу что-то, я получаю результат из сообщения, но когда я нажимаю следующую кнопку, он собирается получить функцию для получения данных
#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