title: modelform: override clean method
body: <p>I have two questions concerning the clean method on a modelform. Here is my example:</p>
  
  <pre><code>class AddProfileForm(ModelForm):
          ...
          password = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'class':'form2'}))
          password_verify = forms.CharField(max_length=30,widget=forms.PasswordInput(attrs={'class':'form2'}), label='Retype password')
          ...
  
          class Meta:
              model = UserModel
              fields=("username", "password", "password_verify", "first_name", "last_name", "date_of_birth", "biography", "contacts", )
  
          #called on validation of the form
          def clean(self):
              #run the standard clean method first
              cleaned_data=super(AddProfileForm, self).clean()
              password = cleaned_data.get("password")
              password_verify = cleaned_data.get("password_verify")
  
              #check if passwords are entered and match
              if password and password_verify and password==password_verify:
                  print "pwd ok"
              else:
                  raise forms.ValidationError("Passwords do not match!")
  
              #always return the cleaned data
              return cleaned_data
  </code></pre>
  
  <ol>
  <li><p>Should I always call the standard clean method?</p>
  
  <pre><code>cleaned_data=super(AddProfileForm, self).clean()
  </code></pre></li>
  <li><p>Should I always return the cleaned_data variable?</p>
  
  <pre><code>return cleaned_data
  </code></pre></li>
  </ol>