Django-фильтр пагинации только первого неудачного поискового файла

Я использую django-filter с пагинацией, пока файл поиска находится на первом месте в списке filter.py -> fields = ['name_procss','typeLevel'], пагинация для фильтра этого файла не работает.

fitler.py:

import django_filters
from MyCore.models import MyRunStats
class MyRunStatsFilter(django_filters.FilterSet):

    def gen_choice(self,filed):
        return tuple((l, l) for l in list(MyRunStats.objects.exclude(**{filed: None}).values_list(filed, flat=True).distinct()))

    name_procss = django_filters.ChoiceFilter(label='Process',choices=tuple,null_label='None',null_value='null')
    typeLevel = django_filters.ChoiceFilter(label='Message Type',choices=tuple,null_label='None',null_value='null')
    

    class Meta:
        model = MyRunStats
        fields = ['name_procss','typeLevel']

                   
    def __init__(self, *args, **kwargs):
        super(MyRunStatsFilter, self).__init__(*args, **kwargs)   
        self.filters['name_procss'].extra['choices'] = self.gen_choice('name_procss')
        self.filters['typeLevel'].extra['choices'] = self.gen_choice('typeLevel')

Views.py

def runstat_hist_view_render(request):
    all_obj =  MyRunStats.objects.all().order_by('-create_dttm')
    hist_filter = MyRunStatsFilter(request.GET, queryset=all_obj)
    paginator= Paginator(hist_filter.qs[:57], 20)
    page = request.GET.get('page')

    try:
        response = paginator.page(page)
    except PageNotAnInteger:
        response = paginator.page(1)
    except EmptyPage:
        response = paginator.page(paginator.num_pages)

    context =  {'response': response,'filter': hist_filter}

    return render(request, 'My/My_runstat_hist.html',context)

html:

<form method="get" >
  {{ filter.form}}
  <button type="button" onclick="submitFilter()" id="hist-search-button" >Search Message</button>
</form>

  {% for item in response %}

  <nav>
    <ul class="pagination">
      {% if  response.has_previous %}
      <li><a href="?page=1&{{ request.get_full_path }}">&laquo; First</a></li>
      <li ><a href="?page={{  response.previous_page_number }}&{{ request.get_full_path }}">Previous</a></li>
      {% else %}
      <li><a href="#">Previous</a></li>
      {% endif %}

      {% for num in  response.paginator.page_range %}
      {% if  response.number == num %}
      <li><a href="?page={{num}}&{{ request.get_full_path }}">{{num}}</a></li>
      {% elif num >  response.number|add:'-3' and num <  response.number|add:'3' %}
      <li><a href="?page={{num}}&{{ request.get_full_path }}">{{num}}</a></li>
      {% endif %}
      {% endfor %}

      {% if  response.has_next %}
      <li><a href="?page={{  response.next_page_number }}&{{ request.get_full_path }}">Next</a></li>
      <li><a href="?page={{  response.paginator.num_pages }}&{{ request.get_full_path }}">Last &raquo;</a></li>
      {% else %}
      <li><a href="#">Next</a></li>
      {% endif %}
    </ul>
  </nav>

Проблема в том, что не важно какой элемент стоит на первом месте в filter.py->fields = ['name_procss','typeLevel'], например сейчас на первом месте стоит 'name_procss', тогда пагинация для 'name_procss' не работает, если я поставлю 'typeLevel' на первое место, тогда пагинация для 'typeLevel' не будет работать, а для 'name_procss' будет работать.

Вернуться на верх