Фильтрация запросов с помощью Django - PullRequest
0 голосов
/ 08 апреля 2020

Я пытаюсь добавить фильтры к своему поиску с помощью Django_Filters. Но когда я пытаюсь отфильтровать уже существующий поиск, ?q=mysearch удаляется, и после этого применяются фильтры. Это код:

def get_queryset(self):
        #this is the search part
        qs = self.model.objects.all().order_by('id')
        search = self.request.GET.get('q')
        if search:
            qs = qs.filter(Título__icontains=search)
        return qs

    def get_context_data(self, **kwargs):
        #here's when I try to filter
        context = super().get_context_data(**kwargs)
        MyFilter = PubFilters(self.request.GET, queryset=self.get_queryset())
        queryset = MyFilter.qs
        search = self.request.GET.get('q')
        paginator, page, object_list, is_paginated = self.paginate_queryset(
            queryset,
            self.get_paginate_by(queryset)
        )
        queries = self.request.GET.copy()
        queries.pop('page', None)
        context.update(
            filter=MyFilter,
            filtered_items=object_list,
            page=page,
            is_paginated=is_paginated,
            count=paginator.count,
            queries=queries,
            búsqueda=self.request.GET.get('q')
        )
        return context

Есть идеи, как это решить? Если вам нужен какой-то другой кусок кода, пожалуйста, спросите. Заранее спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...