title: Django form: call 'clean' before 'clean_<form_field>'
body: <p>Hi I have a django form in which I have a radio button and several character fields. As part of this form validation I want to clean each of these inputs, and then do some extra cleaning (i.e further cleaning of downstream data).</p>
  
  <p>However, when i put my 'extra cleaning' in clean() this is called after each of the clean_() methods.</p>
  
  <p>Is there a way I can call clean() last?</p>
  
  <p>form.py</p>
  
  <pre><code>class UploadForm(forms.ModelForm):
      year = forms.IntegerField(label='Year:', required=True)
      number = forms.IntegerField(label='Number:', required=True)
      stored = forms.ChoiceField(
          required=True,
          label='Storage:',
          widget=forms.RadioSelect,
          choices=(('Routine', 'Routine',), ('Archive', 'Archive',))
          )
  
  
      def clean_year(self):
  
          self.year = self.cleaned_data['year']
  
          year_check = re.compile("\d{4}$")
  
          if year_check.match(str(self.year)):
              return(self.year)
  
          else:
              msg = "Year '%s' is incorrect." %(str(self.year))
              logger.error(msg)
              raise(forms.ValidationError(msg))
  
  
      def clean_number(self):
  
          self.number = self.cleaned_data['number']
          number_check = re.compile("\d{1,2}$")
  
          if number_check.match(str(self.number)):
              return(self.number)
  
          else:
              msg = "Year '%s' is incorrect." %(str(self.number))
              logger.error(msg)
              raise(forms.ValidationError(msg))
  
  
  def clean_stored(self):
      try:
          self.stored = self.cleaned_data['stored']
  
      except:
          self.stored = False
  
  
  def clean(self):
  
       self.more_cleaning_methods()
  
  
  def more_cleaning_methods():
  
       print(self.stored)
  </code></pre>
  
  <p>This results in an error if stored radio button is not checked - instead of raising a form error. This is because clean() is called first - and therefore my class object does not have an "<code>attribute 'stored'</code>"</p>
  
  <p>is there a way I can call clean() after individually cleaning the field inputs, or is there another way to call a clean method (before form.is_valid() == True) after my field inputs?</p>
  
  <p>Thanks</p>