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我只能说您是天才:再次感谢您快速准确的回答!