def wrapper(**kwargs): # Get context from the handler function context = func(**kwargs) if hasattr(context, '__call__'): return context # Add some extra values to context request = kwargs['request'] # while it's enough :) if 'GET' == request.method: rendered_page = render_to_string(templatename, context, request) return Response(rendered_page) else: response = Response(json.dumps(context)) response.headerlist = [('Content-type', 'application/json')] return response