def get(self, request): q = request.GET.get('term', '') if request.is_ajax(): page = request.GET.get('page', None) sqs = search_public_channels(q) return HttpResponse(json.dumps([dict(name=q.name, image=q.image, kind=q.kind) for q in sqs]), content_type="application/json") else: channels = [] if q: channels = search_public_channels(q) else: channels = get_suggested_channels() return render_to_response('search.html', { 'suggested': channels, }, context_instance=RequestContext(request) ) return HttpResponse()
def get(self, request, *args, **kwargs): q = request.QUERY_PARAMS.get('q', '') # sqs = SearchQuerySet().models(Channel).filter(content=Clean(q)) sqs = search_public_channels(q) paginator = Paginator(sqs, 50) page = request.QUERY_PARAMS.get('page') if not page: page = 1 try: channels = paginator.page(page) except PageNotAnInteger: # If page is not an integer, deliver first page channels = paginator.page(1) except PageNotAnInteger: # If page is out of range, deliver last page channels = paginator.page(paginator.num_pages) serializer_context = {'request': request} serializer = PaginatedChannelSerializer(channels, context=serializer_context) return Response(serializer.data)