在回复this question之后(再次感谢Ellie P!),我创建了一个搜索页面和一个结果页面。
例如,如果您search为律师“delelle”,结果页面显示她的公司,学校和年度毕业。但是,我希望展示同年从同一所学校毕业的其他律师,而不是显示她的信息。
这是观点:
def search(request):
if 'q' in request.GET and request.GET['q']:
q = request.GET['q']
lawyers = Lawyer.objects.filter(last__icontains=q)
return render_to_response('search_results.html', {'lawyers': lawyers, 'query': q})
else:
return HttpResponse('Please submit a search term.')
任何人都可以帮助我了解如何保存初始查询中的school
和year_graduated
并执行school
和year_graduated
搜索并显示该结果吗?
谢谢!
修改
模型是here
Edit2
我尝试了QuerySet API
中的一些内容鉴于搜索查询是“akira”:
>>> akira_year = Lawyer.objects.filter(first__icontains="Akira").values_list('year_graduated').order_by('year_graduated')
>>> print akira_year
[(u'2000',)]
但是
>>> Lawyer.objects.filter(year_graduated__icontains=akira_year[0])
[]
不起作用。
在这种情况下,任何人都可以帮助使用正确的语法吗?
由于
答案 0 :(得分:0)
此视图功能回答了问题:
def search(request):
if 'q' in request.GET and request.GET['q']:
q = request.GET['q']
q_school = Lawyer.objects.filter(last__icontains=q).values_list('school', flat=True)
q_year = Lawyer.objects.filter(last__icontains=q).values_list('year_graduated', flat=True)
lawyers = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year[0])
return render_to_response('search_results.html', {'lawyers': lawyers, 'query': q})
else:
return HttpResponse('Please submit a search term.')