Как добавить параметры в URL-адрес в методе рендеринга - Django?
У меня возникают трудности с добавлением разбивки на страницы в результаты поиска.
На первой странице результат отображается отлично, но начиная со второй страницы параметр поиска больше не существует.
Спасибо.
def get(self, request):
clientes = Cliente.objects.filter(
Q(nome__icontains=request.GET['nome']))
formPesquisa = FormPesquisaCliente()
paginator = Paginator(clientes, 40)
page = request.GET.get('page')
clientes = paginator.get_page(page)
response = render(request, 'cliente/index.html', {
'clientes': clientes,
'formPesquisa': formPesquisa})
response['Location'] += '?nome=' +request.GET['nome']
return response
Можете показать html файл?






Чего вам не хватает, так это того, что когда вы отфильтровали данные из набора запросов и разбили их на страницы, очевидно, для просмотра следующей страницы вам нужно сохранить состояние, передав тот же объект фильтра nome. Таким образом, URL-адрес должен выглядеть примерно так.
http://localhost:8000/clients/?page=2&nome=something
def get(self, request):
abc = request.GET.get['nome']) #<--- variable to get value from view
clientes = Cliente.objects.filter(
Q(nome__icontains=abc)) #<-- pass the abc variable here
formPesquisa = FormPesquisaCliente()
paginator = Paginator(clientes, 40)
page = request.GET.get('page')
clientes = paginator.get_page(page)
response = render(request, 'cliente/index.html', {
'clientes': clientes,
'formPesquisa': formPesquisa,
'abc':abc}) #<-- passing the abc variable to view to maintain the state of your filter.
response['Location'] += '?nome=' +request.GET['nome']
return response
Пример кода страницы:
<div class = "pagination">
<span class = "step-links">
{% if clients.has_previous %}
<a href = "?page=1">« first</a>
{% if nome %}
<a href = "?page = {{ clientes.previous_page_number }}&nome = {{ nome }}">previous</a>
{% else %}
<a href = "?page = {{ clientes.previous_page_number }}">previous</a>
{% endif %}
{% endif %}
<span class = "current">
Page {{ clientes.number }} of {{ clientes.paginator.num_pages }}.
</span>
{% if clientes.has_next %}
{% if nome %}
<a href = "?page = {{ clientes.next_page_number }}&nome = {{ nome }}">next</a>
<a href = "?page = {{ clientes.paginator.num_pages }}&nome = {{ nome }}">last »</a>
{% else %}
<a href = "?page = {{ clientes.next_page_number }}">next</a>
<a href = "?page = {{ clientes.paginator.num_pages }}">last »</a>
{% endif %}
{% endif %}
</span>
</div>
Большое Вам спасибо
При нажатии на вторую страницу вам нужно снова передать объект
nomeв URL-адресе.