IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

problème affichage erreurs dans formulaire


Sujet :

Django Python

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 76
    Points
    76
    Par défaut problème affichage erreurs dans formulaire
    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 :
    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))
    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
    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
    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
    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>
    Voila si quelqu'un a des idées merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    175
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 175
    Points : 76
    Points
    76
    Par défaut
    C'est très très bizarre, lorsque je fait une vérification générale des erreurs comme ci-dessous, les erreurs soulevées par "clean" sont visibles ainsi que les erreurs particulières à chaque champ.

    là j'avoue ne plus rien y comprendre...

Discussions similaires

  1. [2.x] Probléme affichage d'un formulaire dans une vue
    Par chlock62 dans le forum Symfony
    Réponses: 4
    Dernier message: 25/07/2014, 13h07
  2. Réponses: 0
    Dernier message: 29/08/2012, 15h36
  3. Réponses: 4
    Dernier message: 25/11/2011, 10h12
  4. Réponses: 2
    Dernier message: 14/03/2011, 15h11
  5. Réponses: 5
    Dernier message: 14/06/2008, 09h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo