Je bloque depuis plusieurs jours sur mon formulaire de connexion qui ne fonctionne pas. J'ai crée un super user en ligne de commande, sa connexion marche.
Par contre, quand je passe par mon formulaire d'inscription pour créer un user et que j'essaie de me connecter après, ça ne marche pas. J'ai ce message d'erreur : * Please enter a correct username and password. Note that both fields may be case-sensitive.
from django.contrib.auth.models import User
from django.db import models
class Profil(models.Model) :
user = models.OneToOneField(User, on_delete=models.CASCADE)
societe = models.CharField(max_length=100)
adresse = models.CharField(max_length=255)
cp = models.CharField(max_length=20)
ville = models.CharField(max_length=60)
pathlogo = models.CharField(max_length=255)
Ma méthode qui enregistre un nouveau membre dans mon User.views :
import sys
from django.shortcuts import render, loader
from django.contrib.auth import authenticate, login, logout
from django.http import HttpResponse, HttpResponseRedirect
from User.forms import UserForm, ProfilForm
def subscribe(request) :
fileCss = sys._getframe().f_code.co_name
if request.method == 'POST' :
formUser = UserForm(request.POST)
formProfil = ProfilForm(request.POST)
if formUser.is_valid() and formProfil.is_valid() :
if (
request.POST.get('password') == request.POST.get('passwordConfirm') and
request.POST.get('email') == request.POST.get('emailConfirm')
) :
user = formUser.save()
profil = formProfil.save(commit=False)
profil.user = user
formProfil.save()
return HttpResponseRedirect('/User/')
Ma méthode user_login :
def user_login(request) :
if request.method == 'POST' :
form = UserForm(request.POST)
if form.is_valid() :
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user :
login(request, user)
return HttpResponseRedirect('/User/')
else :
form = UserForm()
context = {
'form': form,
'test': 'OK'
}
return render(request, 'registration/login.html', context)
Mon fichier User.urls.py
from django.urls import path, include
from .views import *
urlpatterns = [
path('', index),
path('subscribe/', subscribe),
path('account/', include('django.contrib.auth.urls')),
path('account/login/', user_login)
]
Et est-ce que je peux personnaliser un peu ma vue login ? Je ne vois pas du tout comment faire (j'ai une donnée "test" dans mon html que j'aimerais exploiter).
Tu parles du chiffrement du mot de passe ? Tu as chiffré avec quoi ? Bcrypt ?
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard) La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)
Je n'ai pas utilisé de fonction spécifique. J'ai juste appelé la méthode set_password() au moment de l'inscription qui s'est chargé de chiffrer lui-même le mot de passe (donc celle par défaut dans Django je pense).
Soucis identification
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Celui qui trouve sans chercher est celui qui a longtemps cherché sans trouver.(Bachelard)
La connaissance s'acquiert par l'expérience, tout le reste n'est que de l'information.(Einstein)