I made a Custom Middleware to secure all my views at once. I also made a custom decorator to exempt login and register/signup functions so that they're accessible to visitors. But when I tried to reset my password using the password-reset view, I couldn't as it redirected me to the login page. This system worked earlier when I had not put my Custom middleware inside the settings.py Middleware.py from django.contrib.auth.decorators import login_required def login_exempt(view): # <-- Custom Decorator view.login_exempt = True return view class LoginRequiredMiddleware: # <-- Custom Middleware def __init__(self, get_response): self.get_response = get_response def __call__(self, request): return self.get_response(request) def process_view(self, request, view_func, view_args, view_kwargs): if getattr(view_func, 'login_exempt', False): return if request.user.is_authenticated: return return login_required(view_func)(request, *view_args, **view_kwargs) Settings.py MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', # custom auth middleware 'dashboard.middleware.LoginRequiredMiddleware', ] Now, if I remove my custom middleware, I'm able to visit my password-reset view. So what should I do to exclude my Auth Views using my login_exempt Custom Decorator? TIA UrlCONF from django.urls import path,include from django.contrib import admin from django.conf import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), path('', include("myapp.urls")), path('accounts/', include('django.contrib.auth.urls')) ] if settings.DEBUG: urlpatterns += (static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)) Continue reading...