2016-07-10 9 views
1

Ich lerne Django und begann mit dem Erstellen eines einfachen Anmeldeformulars. Meine Ansicht funktioniert (umleiten zu '/ person /), wenn authentifizierter Benutzername/Passwort zur Verfügung gestellt wird. Aber es wirft einen ERROR ‚‘ AnonymousUser‘Objekt hat kein Attribut‚_meta‘“, wenn ungültige Anmeldeinformationen bereitstellt. Im Folgenden ist meine Ansicht.Django Anmeldeformular/Ungültiger Benutzer

#views.py 
def userlogin(request): 
    username = request.POST.get('username') 
    password = request.POST.get('password') 
    user = authenticate(username=username, password=password) 
    auth_login(request, user) 
    if user is not None: 
     if user.is_active: 
      print("User is valid, active and authenticated") 
      return HttpResponseRedirect('/person') 
     else: 
      print("The password is valid, but the account has been disabled!") 
      # return HttpResponseRedirect('/person/login') 
      return render(request, 'login.html') 
    else: 
     print("The username and password were incorrect.") 
     return HttpResponseRedirect('/person/login') 

    return render(request, 'login.html') 

Antwort

3

Sie versuchen, einen Benutzer anmelden ('AnonymousUser'), deren Anmeldeinformationen ungültig sind.

Bewegen Sie den auth_login Logik in den Block für authentifizierte Benutzer:

user = authenticate(username=username, password=password) 
if user is not None: 
    if user.is_active: 
     auth_login(request, user) 
+0

Danke Moses, es funktionierte. – Rocky

Verwandte Themen