from django.core.urlresolvers import resolve class GetCurrentViewMiddleware(object): def process_request(self, request): try: current_view = resolve(request.path)[0] # Handle wrappers if hasattr(current_view, 'view_func'): current_view = current_view.view_func # Saving back to request setattr(request, 'current_view', '%s.%s' % (current_view.__module__, current_view.__name__)) except: pass