2016-04-26 10 views
0

Ich versuche, meinen benutzerdefiniertenwarum Authentifizieren geben keine in django

def login_user(request): 
    print "hi" 
    context = RequestContext(request) 
    email = request.POST.get('username') 
    password = request.POST.get('password') 
     # print type(username) 
     # print "username",username 
    try: 
     print "email-->",email, "password", password 
     user=authenticate(username=email,password=password) 

     print 'user-->',user 
     if user.is_active: 
      json = {"email":email} 
      return render(request, 'success.html', json) 
     else: 
      return HttpResponse("Your account is disabled.") 
    except ObjectDoesNotExist: 
     return HttpResponse("INvalid User") 

zu authentifizieren, wenn ich diesen Code traf es gibt mir immer Benutzer == Keine. meine authenticate Methode Rückkehr None.Why dies geschieht

+0

'Benutzer = authentifizieren (Benutzername = E-Mail, Passwort = Passwort)' vielleicht? –

+0

als @KlausD. sagt, Sie versuchen, "E-Mail" und "Passwort" als Zeichenfolgen anstelle ihrer Variablen zu authentifizieren –

+0

Sind Sie sicher, dass Sie alle notwendigen Einstellungen hinzugefügt haben? –

Antwort

0
user=authenticate(username="email",password="password") 

Wenn Sie den Wert in Anführungszeichen geben, wird es Rohwert nehmen. Entfernen Sie Anführungszeichen und versuchen Sie wie folgt, um den Wert der zu ersetzenden Variable zu erhalten.

user=authenticate(username=email,password=password) 
+0

ich versuche das auch. –

+0

Ich möchte hart Code Benutzer geben, also habe ich zitiert. –

+0

Haben Sie versucht, sich mit denselben Anmeldeinformationen auf Ihrer Site anzumelden? Sie erhalten keine, wenn Ihre Anmeldeinformationen falsch sind oder der Benutzer nicht existiert. –

1

Pass Variablen statt ihrer Namen als Strings

user=authenticate(username=email, password=password) 

statt

user=authenticate(username="email", password="password") 

here Sie sehen, warum gibt es None

+0

Ich habe auch Variablen anstelle ihrer Namen übergeben.aber nichts hat mir geholfen –

+0

@CPVerma dann sind Ihre Anmeldeinformationen falsch. hast du deine db überprüft? Können Sie sicherstellen, dass Ihre Datenbank genau die Daten enthält, die Sie zur Authentifizierung angeben? – doniyor

+0

@ doniyor Ich habe meine Anmeldedaten 1000 Mal überprüft. –

0
USERNAME_FIELD = 'email' 

es gibt keine sein Wenn der Benutzername mit der angegebenen E-Mail-Adresse nicht übereinstimmt, authentifiziert die Authentifizierungsmethode nach Benutzername und nicht nach E-Mail, um E-Mail als Benutzername zu verwenden, wie oben angegeben, und verwendet auch User.DoesNotExist für Ausnahme.

+0

vielleicht habe ich nicht meine code.i sah dies in meinem Code verwendet 'is_admin = models.BooleanField (default = False) objects = MyUserManager () USERNAME_FIELD = 'email' # REQUIRED_FIELDS = ['date_of_birth'] ' –

+0

haben Sie Ihr Authentifizierungs-Backend in den Einstellungen registriert? – Bharathi

Verwandte Themen