2016-08-30 1 views
-1

Django funktioniert nicht, wenn eine benutzerdefinierte Middleware implementieren, um zu überprüfen, ob Benutzer aktiv ist und überprüfen, ob Benutzer ist anmelden, dann kann es in der Website sein eingeben sonst wird es zur Anmeldeseite zurückDjango funktioniert nicht, wenn eine benutzerdefinierte Middleware zu überprüfen, ob Benutzer aktiv ist und überprüfen, ob Benutzer angemeldet ist dann kann es in der Website geben

meine Middleware ist ich versuche nur, dass für die Prüfung zu implementieren, wenn der Benutzer nicht dann melden sie es an Seite nicht betreten in kann

from django.shortcuts import render, redirect 
from django.contrib.auth.forms import AuthenticationForm 
class FilterMiddleware(object): 
    # Check if client is allowed 
    def process_request(self, request): 
     if not request.user.is_authenticated() : 
      form_class = AuthenticationForm 
      template_name = 'music/login_form.html' 
      form = form_class(None) 
      return render(request, template_name, {'form': form}) 
     return super(FilterMiddleware, self).dispatch(request) 

settings.py:

MIDDLEWARE_CLASSES = [ 
    'django.middleware.security.SecurityMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.common.CommonMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.auth.middleware.SessionAuthenticationMiddleware', 
    'music.middleware.filter_middleware.FilterMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
    'django.middleware.clickjacking.XFrameOptionsMiddleware' 

] 

Antwort

0

Sie können auch @login_required Decorator verwenden, um zur Anmeldeseite umzuleiten, wenn der Benutzer nicht angemeldet ist.

+0

danke @dev Verma –

Verwandte Themen