Как вернуть поисковый запрос в Django Generi c Class Based ListView - PullRequest
0 голосов
/ 09 февраля 2020

Я хотел бы вернуть критерий поиска вместе с результатами поиска. Я попытался добавить поисковый термин в контекстный словарь и попытался вернуть объект контекста, но это не работает. Когда я просто возвращаю результаты поиска без поискового запроса, он отлично работает.

Может ли кто-нибудь помочь мне с тем, как я могу вернуть поисковый запрос вместе с результатами поиска. Большое спасибо за вашу помощь заранее.

Ниже приведен мой код для вашей доброй справки.

class JobSearchView(ListView):
    model               = Job
    template_name       = 'jobs/job_search_results.html'
    ordering            = ['-published_date']
    context_object_name = 'search_results'
    paginate_by         = 10

    def get_queryset(self):
        search_results = []
        distinct_search_results = []
        query = self.request.GET.get('search_term')
        keyword_list = query.split(" ")
        print(keyword_list)
        for keyword in keyword_list:
            print(keyword)
            posts = Job.objects.filter(
                Q(title__icontains=keyword) |
                Q(organization__name__icontains=keyword) |
                Q(type__icontains=keyword) |
                Q(address__icontains=keyword) |
                Q(city__icontains=keyword) |
                Q(state__name__icontains=keyword) |
                Q(pincode__icontains=keyword) |
                Q(min_qualification__icontains=keyword) |
                Q(desired_qualification__icontains=keyword) |
                Q(profession__name__icontains=keyword) |
                Q(department__name__icontains=keyword)
            ).distinct()

            for post in posts:
                search_results.append(post)

        context = {
            'search_query': query,
            'search_results': search_results
        }

        return context

1 Ответ

1 голос
/ 09 февраля 2020

Вы должны переопределить get_context_data(), чтобы добавить поисковый запрос в контекст, а не get_queryset().

...