2016-07-10 9 views
1

私はDjangoを学び、簡単なログインフォームを作成し始めました。認証されたユーザー名/パスワードを提供するとき、私の見解が働いています( '/ person /にリダイレクトしています)。しかし、無効な資格情報を提供する際に「AnonymousUser」オブジェクトが「無属性 『_meta』がありません」というエラーを投げています。以下は、私の見解である。Djangoログインフォーム/無効なユーザー

#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

関連する問題