Python 如何在Django的基于类的通用ListView中返回搜索词

Python 如何在Django的基于类的通用ListView中返回搜索词,python,django,python-3.x,django-models,django-views,Python,Django,Python 3.x,Django Models,Django Views,我想返回搜索词和搜索结果。我确实尝试在上下文字典中添加搜索词,并尝试返回上下文对象,但这不起作用。当我只返回没有搜索词的搜索结果时,它工作得非常好 有谁能帮助我如何返回搜索词以及搜索结果。非常感谢您事先的帮助 以下是我的代码供您参考 class JobSearchView(ListView): model = Job template_name = 'jobs/job_search_results.html' ordering

我想返回搜索词和搜索结果。我确实尝试在上下文字典中添加搜索词,并尝试返回上下文对象,但这不起作用。当我只返回没有搜索词的搜索结果时,它工作得非常好

有谁能帮助我如何返回搜索词以及搜索结果。非常感谢您事先的帮助

以下是我的代码供您参考

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

您应该覆盖get\u context\u数据以将搜索查询添加到上下文中,而不是get\u queryset。

到底什么不起作用?search_query是您添加到上下文中的搜索项,因此在模板中打印{{search_query}}应该可以。哦,您应该在get_context_数据中返回上下文,而不是在get_queryset中返回上下文。@dirkgroten我想使用为搜索项指定静态值的锚定标记调用此JobSearchView函数,我该怎么做?再次提前感谢!href={%url'job_search'%}?search_term=all,其中job_search是您的url模式的名称,所有内容都是您想要的静态搜索词。@dirkgroten我只能说您是天才:再次感谢您快速准确的回答!