As in previous chapters, I've shown you the simplest thing that could possibly work. Now I'll point out some problems and show you how to improve it. First, our search()
view's handling of an empty query is poor-we're just displaying a Please submit a search term. message, requiring the user to hit the browser's back button.
This is horrid and unprofessional, and if you ever actually implement something like this in the wild, your Django privileges will be revoked. It would be much better to redisplay the form, with an error preceding to it, so that the user can try again immediately. The easiest way to do that would be to render the template again, like this:
from django.http import HttpResponse from django.shortcuts import render from books.models import Book def search_form(request): return render(request, 'search_form.html') def search(request): if 'q' in request.GET and request.GET['q...