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