Django Сохраняет тот же фильтр в разбивке по страницам

#python #html #django

Вопрос:

Я просмотрел предыдущие вопросы по этому поводу, но не нашел точного ответа на свою проблему, так как я не использую django-фильтры.

Я применяю фильтры к странице поиска и использую разбиение на страницы. Конечно, при переходе на следующую страницу все фильтры сбрасываются. Я хочу иметь возможность включать одни и те же фильтры при переходе со страницы на страницу. Вот мой код:

views.py:

 def recherche(request):
filters = {
    'intermediaire__name__icontains': request.POST.get('kw_intemediaire'),
    'assurance__name__icontains': request.POST.get('kw_assurance'),
    'matricule__icontains': request.POST.get('kw_matricule'),
    'numero__icontains' : request.POST.get('kw_numero'),
    'created_by__name__icontains' : request.POST.get('kw_created_by'),
    'date_posted__icontains' : request.POST.get('kw_date_posted'),
}
filters = {k: v for k, v in filters.items() if v}
dossiers = Dossier.objects.filter(**filters)
print(filters)
p = Paginator(dossiers, 10)
page_num = request.GET.get('page', 1)
try:
    dossiers = p.page(page_num)
except EmptyPage:
    dossiers = p.page(1)

context = {
    'dossiers': dossiers,
    'intermediaires': Intermediaire.objects.all(),
    'assurances': Assurance.objects.all(),
}
return render(request, "dashboard/recherche.html", context)
 

Шаблон:

 <div class="pagination">
    {% if dossiers.has_previous %}
    <a href="?page=1">Première page</a>
    <a href="?page={{ dossiers.previous_page_number }}">amp;laquo;</a>
    {% endif %}
    <p class="active">Page {{ dossiers.number }} sur {{ dossiers.paginator.num_pages }}</p>
    {% if dossiers.has_next %}
    <a href="?page={{ dossiers.next_page_number }}">amp;raquo;</a>
    <a href="?page={{ dossiers.paginator.num_pages }}">Dernière page</a>
    {% endif %}
  </div>
 

Я хочу сделать это: я добавил a print(filters) в представление, чтобы увидеть, как передаются фильтры, и они печатаются следующим образом: {'assurance__name__icontains': 'RMA Assurance'} . Все, что я хочу сделать, это взять этот словарь, извлечь различные поля и передать их в качестве параметров запроса GET в URL-адресах разбиения на страницы. Как вы можете видеть, у меня нет одного параметра, кроме 6, которые могут быть применены одновременно.

Комментарии:

1. У кого-нибудь есть ответ на эту проблему? В то же время я пытаюсь это: добавление ?filter1=field?filter2=field в ссылки пагинации, и получить эти переменные в представление, request.GET.get(....) и создать, если заявление проверке, если они существуют, но это не работает и даже если это работает, это очень плохое кодирование, потому что у меня есть 6 разных фильтров, которые могут быть включены одновременно