0

Pourquoi je ne parviens pas à obtenir mon login travail ..Connexion avec erreur de code Email

views.py

def candidate_login(request): 
    if request.method == 'POST': 
     email = request.POST.get('email') 
     password = request.POST.get('password') 

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

     if user: 
      if user.is_active & user.check_password(password): 
      login(request,user) 
      return HttpResponseRedirect(reverse('index')) 
      else: 
      HttpResponse("Account not active, please contact Admin") 
     else: 
      print("Someone tried to login and failed") 
      return HttpResponse("Invalid login detailed supplied!") 
    else: 
     return render(request,'candidate_login.html',{}) 

Quand j'essaie de me connecter je reçois le message error: connexion non valide détaillée fourni!

Pourriez-vous s'il vous plaît aidez-moi à faire fonctionner? Thk beaucoup Raphael

models.py

from django.db import models 
from django.contrib.auth.models import AbstractUser 

# Create your models here. 


class MyUser(AbstractUser): 
    is_hr = models.BooleanField(default=False) 
    is_candidate = models.BooleanField(default=False) 
    is_employee = models.BooleanField(default=False) 
    company = models.CharField(max_length=100, default='') 
+0

Pas le problème, mais vous n'avez pas besoin d'appeler 'user.check_password'; c'est déjà fait dans 'authenticate'. Et de toute façon, en Python le booléen et est juste 'and', pas' & '. –

+0

L'adresse électronique est-elle utilisée comme nom d'utilisateur? Avez-vous utilisé un modèle 'User' personnalisé? –

+0

Salut Sachin, oui j'ai utilisé un modèle d'utilisateur personnalisé! J'ai édité mon post yo show mon model.py. Que voulez-vous dire en utilisant l'email comme nom d'utilisateur? – Ben2pop

Répondre

1

authenticate prend le nom d'utilisateur & mot de passe pour vérifier. Vous pouvez directement filtrer le modèle utilisateur pour récupérer l'utilisateur lié à un e-mail donné, puis vérifier la fonction de mot de passe pour vérifier le mot de passe.

def candidate_login(request): 
    if request.method == 'POST': 
     email = request.POST.get('email') 
     password = request.POST.get('password') 

     user = User.objects.filter(email=email) 

     if user: 
      user=user[0] 
      if user.is_active & user.check_password(password): 
      login(request,user) 
      return HttpResponseRedirect(reverse('index')) 
      else: 
      HttpResponse("Account not active, please contact Admin") 
     else: 
      print("Someone tried to login and failed") 
      return HttpResponse("Invalid login detailed supplied!") 
    else: 
     return render(request,'candidate_login.html',{}) 
+0

Awsome !! Thx vous tellement cela a fonctionné! Je devais juste changer user = MyUser.objects.filter (email = email) depuis que j'utilise un modèle personnalisé – Ben2pop