def browse(request): "Browse postcards and display thumbnail images." repo = Repository() repo.default_object_type = ImageObject number_of_results = 15 context = {} search_opts = postcard_search_opts().copy() if 'subject' in request.GET: context['subject'] = request.GET['subject'] search_opts['subject'] = request.GET['subject'] postcards = repo.find_objects(**search_opts) postcard_paginator = Paginator(list(postcards), number_of_results) try: page = int(request.GET.get('page', '1')) except ValueError: page = 1 # If page request (9999) is out of range, deliver last page of results. try: postcard_page = postcard_paginator.page(page) except (EmptyPage, InvalidPage): postcard_page = postcard_paginator.page(postcard_paginator.num_pages) context['postcards_paginated'] = postcard_page return render(request, 'postcards/browse.html', context)