Partage
  • Partager sur Facebook
  • Partager sur Twitter

Où est le probleme dans mon formulaire ???

    17 novembre 2014 à 0:56:18

    Bonjour,

    pourriez-vous me dire ce qui ne va pas avec mon formulaire???

    # views.py
    
    def inscription(request):
        if request.method == "POST":
            form = InscriptionForm(request.POST)
            if form.is_valid:
                username = form.cleaned_data['username']
                first_name = form.cleaned_data['first_name']
                last_name = form.cleaned_data['last_name']
                email = form.cleaned_data['email']
                date_of_birth = form.cleaned_data['date_of_birth']
                password = form.cleaned_data['password']
                form.save()
            else:
                form = InscriptionForm()
    
        return render_to_response('auth01/inscription.html', {'form': form, }, context_instance=RequestContext(request))

    et

    # forms.py
    
    class InscriptionForm(forms.Form):
        username = forms.CharField(label="Nom d'utilisateur", max_length=30)
        first_name = forms.CharField(label="Prénom", max_length=30)
        last_name = forms.CharField(label="Nom", max_length=30)
        email = forms.EmailField()
        date_of_birth = forms.DateField(label="Date de naissance")
        password = forms.CharField(label="Mot de passe", widget=forms.PasswordInput)
        password2 = forms.CharField(label="Mot de passe", widget=forms.PasswordInput)
    


    Je n'arrive pas à sauvegarder les données que j'inscris. Actuellement voila l'erreur que j'ai :

    UnboundLocalError at /connexion/insc

    local variable 'form' referenced before assignment
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      17 novembre 2014 à 7:24:17

      Je n'ai jamais fait de Django mais ici l'erreur vient du fait que request.method n'est pas "POST". Or, comme la variable form est déclarée dans un scope inférieur, elle n'est pas définie là ou tu t'en sert ligne 17. La solution est d'indenter ton return une fois, et ça devrait marcher.

      • Partager sur Facebook
      • Partager sur Twitter
        17 novembre 2014 à 16:55:49

        J'ai pas compris. Je veux que mon formulaire soit en POST; et si je décale return il sera dans le else: non?
        • Partager sur Facebook
        • Partager sur Twitter
          17 novembre 2014 à 18:10:54

          Je pense que AZ voulais en fait dire que tu dois décaler ton else (pour le mettre au niveau du premier if). Sinon, si la condition du premier if n'est pas vérifié, la variable form ne sera jamais créée. Or dans ton return tu l'utilise. D'où l'erreur qui dit que tu l'utilise avant de l'avoir créée.
          • Partager sur Facebook
          • Partager sur Twitter
          Précepte: Le mieux est l'ennemi du bien

          Où est le probleme dans mon formulaire ???

          × 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.
          • Editeur
          • Markdown