Bonjour à tous !
J'ai un petit problème, j'utilise Django pour faire un petit site et je voudrais hacher les mots de passe que les utilisateurs créent. J'ai décidé d'utiliser Bcrypt mais lorsque je remplis le formulaire d'inscription et que je le valide j'ai une erreur :Au début je pensais que c'était parce qu'au niveau de mon attribut password j'avais mis maximum 20 caractères donc j'ai modifié à 256 caractères :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Exception Type: DataError Exception Value: ERREUR: valeur trop longue pour le type character varying(30)Mais j'ai toujours cette erreur, je vous mets mon views.py où j'utilise Bcrypt :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 class User(models.Model): username = models.CharField(max_length=50, unique=True) email = models.EmailField(max_length=100, unique=True) password = models.CharField(max_length=256) def __str__(self): return self.usernameEst-ce que vous pourriez me dire d'où vient cette erreur ? Je ne comprends pas là
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28 from django.shortcuts import render, redirect from .forms import UserSignUpForm, ParagraphErrorList from django.contrib import messages from .models import User import bcrypt def signup(request): if request.method == 'POST': form = UserSignUpForm(request.POST, error_class=ParagraphErrorList) if form.is_valid(): email = form.cleaned_data['email'] username = form.cleaned_data['username'] password = form.cleaned_data['password'].encode("utf-8") enc_password = bcrypt.hashpw(password, bcrypt.gensalt()) user = User.objects.filter(email=email, username=username) if not user.exists(): user = User.objects.create( email=email, username=username, password=enc_password ) messages.success(request, 'Votre compte a bien été créé, vous pouvez vous connecter !') return redirect('/signin/') else: form = UserSignUpForm() return render(request, 'store/signup.html', {'form': form})
Merci à tous !
Partager