Bonjour,
J'ai des soucis pour afficher les erreurs liées à mon formulaire. J'ai du louper quelque chose dans ma compréhension des formulaires.
Voici ma vue :
Mon formulaire:
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 def connexion(request): if request.user.is_authenticated(): return HttpResponseRedirect('') if request.method == 'POST': form = ConnectMembreForm(request.POST) if form.is_valid(): utilisateur = form.save() password = request.POST['passwordee'] util = authenticate(username=utilisateur.username, password=password) if util.is_active: login(request, util) return HttpResponseRedirect('') else: return HttpResponseRedirect('') else: form = ConnectMembreForm() return render_to_response('connexion.html', {'form' : form}, context_instance = RequestContext(request))
Voici mon template:
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 class ConnectMembreForm(forms.Form): email = forms.EmailField(label = 'Adresse E-mail', max_length = 50, error_messages={'required': u'Vous devez entrer un e-mail'},) passwordee = forms.CharField(label = 'Mot de passe', max_length = 50, widget = forms.PasswordInput(render_value=False), error_messages={'required': u'Vous devez entrer mot de passe'},) def clean(self): cleaned_data = self.cleaned_data #super(ConnectMembreForm, self).clean() email = cleaned_data.get("email") password = cleaned_data.get("passwordee") if email and password: try: result = User.objects.get(email = self.cleaned_data['email']) if result.check_password(password): pass else: raise forms.ValidationError(u"Cet utilisateur ou ce mot de passe ne correspondent pas") except User.DoesNotExist: raise forms.ValidationError(u"Cet utilisateur ou ce mot de passe ne correspondent pas") else: raise forms.ValidationError(u"Cet utilisateur ou ce mot de passe ne correspondent pas") return cleaned_data def save(self): user = User.objects.get(email = self.cleaned_data['email']) return user
Voila si quelqu'un a des idées merci
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
29
30
31
32
33
34 <! DOCTYPE html> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <title>Connexion</title> </head> <body> {% if messages %} <ul class="messages"> {% for message in messages %} <li{% if message.tags %} class="{{ message.tags }}"{% endif %}>{{ message }}</li> {% endfor %} </ul> {% endif %} <form id="connexion" action = "." method="post" class="form_connexion" >{% csrf_token %} <dl> <dt>{{ form.email.label_tag }}</dt> <dd>{{ form.email }}</dd> <dd>{{ form.email.errors}}</dd> </dl> <dl> <dt>{{ form.passwordee.label_tag }}</dt> <dd>{{ form.passwordee }}</dd> <dd>{{ form.passwordee.errors }}</dd> </dl> <div class = "break"> <input type="submit" Value="Connexion"> </div> </form> </body> </html>
Partager