def search(request): if request.method == 'GET': form = SearchForm(request.GET) if form.is_valid(): last_name = form.cleaned_data['last_name'] first_name = form.cleaned_data['first_name'] lawyers = Lawyer.objects.all() if last_name and not first_name: lawyers = lawyers.filter(last__iexact=last_name) if len(lawyers)==0: form = SearchForm() return render_to_response('last_only_no_match.html', {'last': last_name, 'form': form}) if len(lawyers)==1: form = SearchForm() q_first_name = lawyers.values_list('first', flat=True) q_school = lawyers.values_list('school', flat=True) q_firm_url = lawyers.values_list('firm_url', flat=True) q_firm_name = lawyers.values_list('firm_name', flat=True) q_year_graduated = lawyers.values_list('year_graduated', flat=True) lawyers1 = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year_graduated[0]).exclude(last__icontains=last_name) return render_to_response('last_only_1_match.html', {'lawyers': lawyers, 'lawyers1': lawyers1, 'last': last_name, 'first': q_first_name[0], 'school': q_school[0], 'firm': q_firm_name[0], 'firm_url': q_firm_url[0], 'class_of': q_year_graduated[0], 'form': form}) if len(lawyers)>1: form = SearchForm(initial={'last_name': last_name}) return render_to_response('last_only_1_plus_match.html', {'lawyers': lawyers, 'last': last_name, 'form': form}) if last_name and first_name: lawyers = lawyers.filter(last__iexact=last_name).filter(first__icontains=first_name) if len(lawyers)==0: form = SearchForm() return render_to_response('first_and_last_no_match.html', {'first': first_name, 'last': last_name, 'form': form}) if len(lawyers)==1: form = SearchForm() q_first_name = lawyers.values_list('first', flat=True) q_school = lawyers.values_list('school', flat=True) q_firm_url = lawyers.values_list('firm_url', flat=True) q_firm_name = lawyers.values_list('firm_name', flat=True) q_year_graduated = lawyers.values_list('year_graduated', flat=True) lawyers1 = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year_graduated[0]).exclude(last__icontains=last_name) return render_to_response('first_and_last_1_match.html', {'lawyers': lawyers, 'lawyers1': lawyers1, 'last': last_name, 'first': q_first_name[0], 'school': q_school[0], 'firm': q_firm_name[0], 'firm_url': q_firm_url[0], 'class_of': q_year_graduated[0], 'form': form}) if len(lawyers)>1: form = SearchForm(initial={'last_name': last_name}) return render_to_response('first_and_last_1_plus_match.html', {'lawyers': lawyers, 'first': first_name, 'last': last_name, 'form': form}) if first_name and not last_name: lawyers = lawyers.filter(first__iexact=first_name) if len(lawyers)==0: form = SearchForm() return render_to_response('first_only_no_match.html', {'first': first_name, 'last': last_name, 'form': form}) if len(lawyers)==1: form = SearchForm() q_first_name = lawyers.values_list('first', flat=True) q_school = lawyers.values_list('school', flat=True) q_firm_url = lawyers.values_list('firm_url', flat=True) q_firm_name = lawyers.values_list('firm_name', flat=True) q_year_graduated = lawyers.values_list('year_graduated', flat=True) lawyers1 = Lawyer.objects.filter(school__icontains=q_school[0]).filter(year_graduated__icontains=q_year_graduated[0]).exclude(last__icontains=last_name) return render_to_response('first_only_1_match.html', {'lawyers': lawyers, 'lawyers1': lawyers1, 'last': last_name, 'first': q_first_name[0], 'school': q_school[0], 'firm': q_firm_name[0], 'firm_url': q_firm_url[0], 'class_of': q_year_graduated[0], 'form': form}) if len(lawyers)>1: form = SearchForm(initial={'first_name': first_name}) return render_to_response('first_only_1_plus_match.html', {'lawyers': lawyers, 'first': first_name, 'last': last_name, 'form': form}) form = SearchForm() return render_to_response('search.html', {'form': form}) # else: # form = SearchForm() # return render_to_response('search.html', {'form': form})