How to catch Django request.GET error? -


this view works when query in database.

def search(request):     if 'q' in request.get , 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]).exclude(last__icontains=q)                 return render_to_response('search_results.html', {'lawyers': lawyers, 'query': q})     else:         return httpresponse('please submit search term.') 

so, if q=delelle finds other lawyers in database graduated same school same year.

if q=collins , collins in database there no other lawyers graduated same school same year gives appropriate error message "no lawyers matched search criteria."

but if q=moritz , there no lawyer named moritz in database gives 500 internal server error.

i don't understand request.get['q'] notation or how can fix can add proper text case when query not in database. can please point me in right direction? thanks.

edit re antony hatchkins answer

the below code works without giving error. try incorporate rest soon:

def search(request):     if 'q' in request.get , request.get['q']:         q = request.get['q']         lawyer = lawyer.objects.filter(last__icontains=q)         if len(lawyer)==0:             return render_to_response('not_in_database.html', {'query': q})         else:             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]).exclude(last__icontains=q)                    return render_to_response('search_results.html', {'lawyers': lawyers, 'query': q})     else:         return httpresponse('please submit search term.') 

def search(request):     q = request.get.get('q', '')     if q:         lawyers = lawyer.objects.filter(last__icontains=q)         if len(lawyers)==0:             return httpresponse('no such lawyer')         if len(lawyers)>1:             return httpresponse('several lawyers matched')         lawyers1 = lawyer.objects.filter(school=lawyers[0].school).filter(year_graduated=lawyers[0].year).exclude(pk=lawyers[0].pk)                 return render_to_response('search_results.html', {'lawyers': lawyers1, 'query': q})     else:         return httpresponse('please submit search term.') 

request.get['q'] fetches field q client browser's get request object


Comments

Popular posts from this blog

c++ - Convert big endian to little endian when reading from a binary file -

C#: Application without a window or taskbar item (background app) that can still use Console.WriteLine() -

unicode - Are email addresses allowed to contain non-alphanumeric characters? -