Когда я ищу что-то (например, Тома), это хорошо работает для первой страницы. Но если я нажму URL-адрес следующей страницы, он покажет тот же результат, ничего не изменится, но в URL-адресе он станет http://127.0.0.1:8000/search/?caption=tom на http://127.0.0.1:8000/search/?caption=tom&?page=2
фильтры.py:
class VideoFilter(django_filters.FilterSet):
class Meta:
model = Video
fields = ['caption']
filter_overrides = {
models.CharField: {
'filter_class': django_filters.CharFilter,
'extra': lambda f: {
'lookup_expr': 'icontains',
},
},
}
просмотров.py:
def search(request):
queryset = Video.objects.all()
filterset = VideoFilter(request.GET, queryset=queryset)
if filterset.is_valid():
queryset = filterset.qs
paginator = Paginator(queryset, 2)
page_number = request.GET.get('page')
print(page_number)# always prints **none**
queryset = paginator.get_page(page_number)
return render(request, 'search.html',{
'result': queryset,
'caption': request.GET['caption'],
})
поиск.html:
{% extends 'navbar.html' %}
{% block body %}
<!-- more code -->
{% if result.has_next %}
<a href="?caption={{caption}}&?page={{result.next_page_number}}"><button>See more results</button></a>
{% endif %}
{% endblock body %}
навбар.html:
<!-- more code -->
<form action="/search/" method="GET"> <!-- working without csrf_token -->
<input type="text" placeholder="Search" id="search" name="caption" required />
<button type="submit">Search</button>
</form>
в чем проблема? как перейти на следующую страницу?