title: Validations errors are not raising in clean function, Why?
body: <p>Well I'm using the Userprofile form with the UpdateView and the errors are not raising even if my condition is true. What is the possibility of this unwanted behavior.</p>
  <p>forms.py.</p>
  <pre><code>class UserProfileForm(forms.ModelForm):
      
      class Meta:
          model = UserProfile
          fields = (&quot;avatar&quot;,&quot;username&quot;,&quot;first_name&quot;,&quot;last_name&quot;,&quot;age&quot;,&quot;gender&quot;)
          # fields = (&quot;avatar&quot;,)
          Gender = (
              ('one','Male'),
              ('two','Female'),
              )
              
          widgets ={
              'age' : forms.TextInput(attrs={'class':'form-control'}),
              'gender' : forms.Select(choices=Gender,attrs={'class': 'form-control'}),
          }
       # TRIED THIS AS WELL    
      # def clean_age(self):
      #     age = self.cleaned_data[&quot;age&quot;]
      #     print(age,'hm here')
      #     if age &lt; 18:
      #         print(age,'hm here')
      #         raise forms.ValidationError(&quot;You're age should be 18 plus&quot;)
      #     return age
  
      def clean(self):
          cleaned_data = super().clean()
  
          age = cleaned_data.get('age')
          print('haye',age)
          if age &lt; 18:
              print(age,'hm here')
              # raise forms.ValidationError(&quot;You're age should be 18 plus&quot;)
              age = &quot;You're age should be 18 plus&quot;
              self.add_error('age',age)
              raise forms.ValidationError(&quot;You're age should be 18 plus&quot;)
  </code></pre>
  <p>views.py
  here i'm updated user model fields and then userprofile field and then saving them respectively.</p>
  <pre><code>class UserProfileUpdateView(UpdateView):
      refirect_field_name ='accounts:profile'
      template_name = 'accounts/profiles/profile_update.html'
      form_class = UserProfileForm
      model = UserProfile
  
      def get_object(self, *args, **kwargs):
          return self.request.user.userprofile
      
      def get_context_data(self, *args, **kwargs):
          context = super(UserProfileUpdateView, self).get_context_data(*args, **kwargs)
          update_form = UserProfileForm(instance = self.request.user.userprofile)
          context['form']=update_form
          return context
      
      def form_valid(self, form):
              username = form.cleaned_data['username']
              print('username :',username)
              first_name = form.cleaned_data['first_name']
              print('first name :',first_name)
              last_name = form.cleaned_data['last_name']
              print('last name :',last_name)
              age = form.cleaned_data['age']
              print('age :',age)
              gender = form.cleaned_data['gender']
              print('gender :',gender)
              # usermodel save
              user = User.objects.get(username=self.request.user)
              print('GOT reqested User',user)
              user.username = username
              print('changed username :',user.username)
              user.age = age
              print('changed age :',user.age)
              user.gender = gender
              print('changed gender:',user.gender)
              user.first_name = first_name
              print('changed first name :',user.first_name)
              user.last_name = last_name
              print('changed last name :',user.last_name)
              user.save()
              # userprofile save
              profile = UserProfile.objects.get(user=self.request.user)
              print('GOT reqested User',profile)
              profile.username = username
              print('changed username :',profile.username)
              profile.age = age
              print('changed age :',profile.age)
              profile.gender = gender
              print('changed gender:',profile.gender)
              profile.first_name = first_name
              print('changed first name :',profile.first_name)
              profile.last_name = last_name
              print('changed last name :',profile.last_name)
              profile.save()
              form.save()
              return super().form_valid(form) 
  </code></pre>
  <p>models.py</p>
  <pre><code>class UserProfile(models.Model):
  
      user = models.OneToOneField(auth.models.User,related_name='userprofile', on_delete=models.CASCADE)
      avatar = models.ImageField((&quot;displays&quot;), upload_to='displays', height_field=None, width_field=None, max_length=None,default ='user.jpg')
      create_date = models.DateTimeField(default = timezone.now)
      Gender = (
      ('one','Male'),
      ('two','Female'),
      )
      first_name = models.CharField((&quot;first_name&quot;), max_length=50,null=True)
      last_name = models.CharField((&quot;last_name&quot;), max_length=50,null=True)
      username = models.CharField((&quot;username&quot;), max_length=50,null=True)
      age = models.IntegerField((&quot;age&quot;),null=True)
      gender = models.CharField((&quot;gender&quot;), max_length=50,choices=Gender,null=True)
  
  
      def __str__(self):
          return f'{self.user.username} UserProfile'
      
      def clean_fields(self, exclude=None):
  
          if self.age &lt; 18:
              raise ValidationError(
                  {&quot;age&quot;: &quot;You're age should be 18+&quot;}
              )
          return super().clean_fields(exclude=exclude)
  
      def save(self,*args, **kwargs):
          if not self.username:
              self.username  = self.user.username
          if not self.age:
              self.age = self.user.age
          if not self.gender:
              self.gender  = self.user.gender
          if not self.first_name:
              self.first_name  = self.user.first_name
          if not self.last_name:
              self.last_name  = self.user.last_name
          super(UserProfile,self).save(*args, **kwargs)
  </code></pre>
  <p>Please tell me how can i fix this issue and raise errors on unvalid details.
  If more information is require then tell me in a comment section, I'll update my question with that information.</p>