Well now this is working just fine: class AccountForm(forms.Form): username = forms.CharField(max_length=100, help_text="Enter Username of your account", label="Your username") email = forms.EmailField(max_length=100, help_text="Enter your e-mail address", label="Your e-mail address") first_name = forms.CharField(max_length=50, help_text="Enter your first name(s) and/or initials", label="First name") last_name = forms.CharField(max_length=50, help_text="Enter your last name", label="Last name") pwd = forms.CharField(max_length=100, help_text="Enter your password", label="Your password", widget=forms.PasswordInput (render_value=False), required=False) pwdc = forms.CharField(max_length=100, help_text="Enter your password again", label="Your password (again)", widget=forms.PasswordInput (render_value=False), required=False) def clean(self): data = self.cleaned_data if len(data.get("username")) < 4: raise forms.ValidationError("Username is too short") if "pwd" in data: if len(data.get("pwd")) < 7 or len(data.get("pwdc")) < 7: raise forms.ValidationError("Password has to be longer than 6 characters") if data.get("pwd") != data.get("pwdc"): raise forms.ValidationError("Passwords do not match") return data
But this (code below) still does not return me any error messages from form validation. form = AccountForm(request.POST) user = request.user if form.is_valid(): do stuff and save user. else: initial_dict = { 'username': user.username, 'email': user.email, 'first_name':user.first_name, 'last_name':user.last_name, } message = "was not valid" accform = AccountForm(initial=initial_dict) proform = ProfileForm() context = { 'message':message, 'aform':accform, 'pform':proform, } return render_to_response('profile/profile_detail.html', context, context_instance=RequestContext(request)) Any idea why? On Jun 8, 7:53 pm, zayatzz <alan.kesselm...@gmail.com> wrote: > I think i already tried that, Michael, and i got some error that had > something to do with nonetype... since there is no pwd in data, you > cant compare if its equal or not to '' > > Alan. > > On 8 juuni, 17:24, Michael <newmani...@gmail.com> wrote: > > > On Mon, Jun 8, 2009 at 10:09 AM, zayatzz <alan.kesselm...@gmail.com> wrote: > > > > So i change pwd and pwdc to required=False and in clean i do > > > if pwd in data (or if ["pwd"] not in data): > > > if data.get("pwd") != data.get("pwdc"): > > > raise forms.ValidationError("Passwords do not match") > > > return data > > > > and i get errorfree clean function? > > > > Alan > > > No think more simple than that really: > > > if cleaned_data['pwd'] != '': > > if cleaned_data['pwd'] != cleaned_data['pwdc']: > > raise ... > > return ... > > > There will always be pwd in cleaned_data, if it is empty, it will be an > > empty string. > > > Hope that works for you, > > > Michael --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---