Я разбил на страницы результаты поиска. Во-первых, набор запросов дает мне идеальный результат, но когда я нажимаю на любой номер страницы, он принимает ключ поиска как нулевой и получает все данные из базы данных. вот код
Views.py
def youtube_search(request):
query = request.GET.get('q')
Q = SearchDetail.objects.all().filter(query = query).order_by('-datetime')
if request.method=='GET':
page_request_var = 'page'
page = request.GET.get(page_request_var)
paginator = Paginator(Q, 10)
try:
paginated_queryset = paginator.page(page)
except PageNotAnInteger:
paginated_queryset = paginator.page(1)
except EmptyPage:
paginated_queryset = paginator.page(paginator.num_pages)
context = {
'queryset': paginated_queryset,
'page_request_var': page_request_var,
'searchKey':query
}
return render(request, 'home.html', context)
вот мой шаблон
home.html
<!DOCTYPE html>
<html>
<body>
<header>
<h3 class="h6">Search the blog</h3>
</header>
<form action="{% url 'search' %}" class="search-form">
<div class="form-group">
<input type="text" name="q" placeholder="What are you looking for?">
<button type="submit">search</button>
</div>
</form>
{% for Q in queryset %}
{{Q.title}}<br/>
{{Q.description}}<br/>
{{Q.datetime}}<br/>
{{Q.thumbnail}}<br/>
{% endfor %}
<nav aria-label="Page navigation example">
<ul class="pagination pagination-template d-flex justify-content-center">
{% if queryset.has_previous %}
<li class="page-item"><a href="?{{ page_request_var }}={{ queryset.previous_page_number }}" class="page-link"> <i class="fa fa-angle-left"></i></a></li>
{% endif %}
{% for num in queryset.paginator.page_range %}
{% if queryset.number == num %}
<li class="page-item"><a href="?{{ page_request_var }}={{ queryset.number }}" class="page-link active">{{ num }}</a></li>
{% elif num > queryset.number|add:'-3' and num < queryset.number|add:'3' %}
<li class="page-item"><a href="?{{ page_request_var }}={{ num }}" class="page-link ">{{ num }}</a></li>
{% endif %}
{% endfor %}
{% if queryset.has_next %}
<li class="page-item"><a href="?{{ page_request_var }}={{ queryset.next_page_number }}" class="page-link"> <i class="fa fa-angle-right"></i></a></li>
{% endif %}
</ul>
</nav>
Я искал stackoverflow для поиска решений. Никто из них не ответил на мой вопрос
Я попробовал каждый кусок кода, полученный с google.помогите мне решить эту проблему