Modification de l'email sur la vue profile
Dernière question (de la soirée) promis ! lol
Dans la vue d'édition du profil,
Dans la vidéo dans le if is_valid on ne touche pas à l'email. Et j'ai voulu quand même rajouter un user.email = request.POST.get("email"). Et ça ne fonctionne pas. Lorsque je modifie l'email je passe dans le else et ça me sort le message d'erreur.
Ce qui bloque c'est peut-être le fait que email c'est le champ USERNAME_FIELD de mon modèle ?
def profil(request):
if request.method == "POST":
# vérifier si le bon mdp est entré
is_valid = authenticate(email=request.POST.get("email"), password=request.POST.get("password"))
if is_valid:
user = request.user
user.first_name = request.POST.get("first_name")
user.last_name = request.POST.get("last_name")
user.email = request.POST.get("email")
user.save()
else:
# on va passer par messages, ils sont associés à la session de l'utilisateur, donc on peut les transporter
# mais si je boucle sur les messages ils sont supprimés ?
# même pas besoin de passer par le context. Une variable dans le html
messages.add_message(request, messages.ERROR, "le mot de passe n'est pas valide.")
return redirect("profil")
# les valeurs initiales, utiliser model_to_dict() Mais on exclu le champ password
form = UserForm(initial=model_to_dict(request.user, exclude="password"))
return render(request, "accounts/profil.html", context={'form': form})
Merci d'avance ^^
Hello Gab,
Alors oui en l'occurence ici tu utilises l'email pour identifier un user donc effectivement je pense que c'est ça le problème. Donc ta requête tombe dans le else du "is_valid" et tu obtiens le message d'erreur que tu as forcé. Retire le else peut être pour voir en mode developpement pour générer l'erreur et son contexte.
Inscris-toi
(c'est gratuit !)
Tu dois créer un compte pour participer aux discussions.
Créer un compte