2016-07-10 8 views
1

Я изучаю Django и начал создавать простую форму входа. Мой просмотр работает (перенаправление на «/ человек /») при предоставлении аутентифицированного имени пользователя/пароля. Но это бросает ОШИБКУ «объект» AnonymousUser»не имеет атрибут" _meta»при предоставлении недействительны. Ниже мой взгляд.Django Login Form/Invalid User

#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') 

ответ

3

Вы пытаетесь войти в систему пользователя ('AnonymousUser'), чьи учетные данные недействительны.

Перемещение auth_login логики в блок для авторизованных пользователей:

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

Спасибо Моисей, он работал. – Rocky