Baboso Codeur
Nombre de messages : 112 Age : 35 Localisation : Bordeaux Date d'inscription : 23/05/2008
Status Perso: Soldat Faction: Eclaireur Caste: Chevalier
| Sujet: Formulaire Sam 4 Oct - 20:01 | |
| Salut, voilà un petit moment que je n'arrive pas à résoudre un problème. Comment passer un paramètre à la méthode clean_xxxx() d'un formulaire ? J'arrive pourtant à passer un paramètre au constructeur de mon formulaire. Je vous mets la portion de code : - Code:
-
class MDPForm(forms.Form): def __init__(self, user, *args): forms.Form.__init__ (self, *args) self.fields['ancienMDP'] = forms.CharField(label='Mot de passe actuel', widget=forms.PasswordInput()) self.fields['nouveauMDP'] = forms.CharField(label='Nouveau mot de passe', widget=forms.PasswordInput()) self.fields['confirmation'] = forms.CharField(label='Confirmation', widget=forms.PasswordInput()) def clean_ancienMDP(self): ancienMDP = self.cleaned_data.get('ancienMDP', '') if not user.check_password(ancienMDP): raise forms.ValidationError("Mot de passe incorrect.") return ancienMDP def clean_confirmation(self): confirmation = self.cleaned_data.get('confirmation', '') nouveauMDP = self.cleaned_data.get('nouveauMDP', '') if confirmation != nouveauMDP: raise forms.ValidationError("Confirmation incorrecte.") return confirmation J'aimerais ajouter "user" comme paramètre à la méthode clean_ancienMDP() mais je ne sais pas où est elle appelée. Merci d'avance pour votre aide. | |
|
Natim Codeur
Nombre de messages : 131 Date d'inscription : 03/11/2007
Status Perso: Natim Faction: Moine Caste: Chevalier
| Sujet: Re: Formulaire Sam 4 Oct - 23:03 | |
| On ne peut pas c'est fixer sans paramêtre par contre tu dois pouvoir récuperer dans le request l'user ou le mettre comme champ hidden dans ton formulaire. | |
|
Baboso Codeur
Nombre de messages : 112 Age : 35 Localisation : Bordeaux Date d'inscription : 23/05/2008
Status Perso: Soldat Faction: Eclaireur Caste: Chevalier
| Sujet: Re: Formulaire Sam 4 Oct - 23:11 | |
| Je n'ai pas non plus de request. Pour le champ hidden, c'est un mot de passe à transmettre donc je n'ai pas envie de le mettre en clair dans le HTML (même si le mot de passe est crypté). EDIT : j'ai réussi à me décoincé, en partie grâce à toi car tu m'a fais regarder un peu ailleurs. J'ai simplement rajouté un attribut self.user au formulaire, en l'initialisant comme ceci dans le constructeur : - Code:
-
self.user = user Merci pour ton aide. | |
|
Natim Codeur
Nombre de messages : 131 Date d'inscription : 03/11/2007
Status Perso: Natim Faction: Moine Caste: Chevalier
| Sujet: Re: Formulaire Sam 4 Oct - 23:18 | |
| Heureux que ça t'ai aidé. | |
|